Feature request: file system only type database

Hello DT devs, hello community,

While DT users have the choice between importing files into DT’s database or just indexing folders in the file systems, people who chose the latter option face some inconsistencies.

A real-world case that I am dealing with (and i presume it’s a quite common case) is maintaining my scientifc paper collection. I use DT’s fantastic classification system for classifying incoming papers into a topic-based folder structure. At the same time I want to access my library from other devices (most of which do not have DT installed), and I need to keep the original folder structure intact, so I just index the root folder of my paper collection, which, in turn, resides in my DropBox folder.

DT’s AI obviously works with indexed folders. The problem is that when DTs moves a file, it only moves the file internally to the destination (DT) group. The moving operation is not reflected in the file system, and there is no easy way to synchronize DT’s groups with the indexed folder structure manually. “Move to external folder” doesn’t work for me. So I ended up writing an AppleScript that does the job, which I must not forget to run after each classification session.

While this is a working solution, it is a little bit fiddly. After skimming through this forum, I have got the impression that many people have the same or a similar use case where they need to maintain a (small) collection of documents in a single folder, share this folder with other devices and still have the benefits that DT brings (see also/classification, project notes, easy tagging, …).

What I would wish to see in an upcoming major release would be the option to have “file system only” type databases that basically consist of a real folder in the file system and keep DT’s view on the folder in sync with the actual file structure. Moving files into a group of such a database would be the same as moving the file to the corresponding folder in the file system.

This is just an idea, I don’t know whether this is feasible nor if other people see this the way I see it. What do you think?

Thanks, Ralph


I agree with the problem - and I’ve expressed my own similar needs recently.

I agree with the problem, but at the same time I have much different needs than the scenario posted. I’m not keeping a small collection of documents in a single folder-I’m indexing almost all of my documents from multiple folders on multiple sources, some on Dropbox, some on iCloud, some on a local shared drive, and most on my local machine. All my databases also contain documents that are not indexed, as I have no need to access these documents outside of DEVONthink. I want better management of indexed documents, but I don’t want a filesystem-only database that watches a single folder in the filesystem.

One question for the OP-what does a script do for you that ‘Move to external folder’ does not?

korm, Greg_Jones, thanks for your thoughts. Of course handling indexed files properly without introducing a new type of database would be an even better solution. My reasoning behind this idea was that the dedicated database type approach might be easier to implement (maybe I’m wrong).

Greg_Jones, after moving a file inside DT (between DT groups), and selecting “move to external folder” on the destination group, nothing happens (the file is not moved in the file system). The “Move to external folder” operation only seems to work with new files created inside DT (at least on my machine). Right clicking on the moved file itself only gives me the option to move it to DT’s database because it already resides in an external folder (although in the wrong one). My AppleScript simply traverses my “Papers Inbox” folder (in the file system) and checks for each file if a record with the same name exists in my DT literature database. If its group is not equal to the “Papers Inbox” group (i.e., if it has been moved by DT), then the script moves the file to the FS folder corresponding to its DT group.

I’m not sure that I understand what you are experiencing, as the first condition above should not be an option. As you mention in the second condition, if a document is indexed one cannot "Move to external folder’ without first moving it back into the database. It does not matter when this is done, which is a plus. In other words, the user can move an indexed document from one indexed folder/group to another indexed folder/group, then later do a move into database/move to external folder and the document will now be moved in the filesystem. It’s functional, but a change in how this works in a future version of DEVONthink would be most welcome.

My wish too, based on a similar document-management philosophy.

That one totally passed by me. Still, it’s far from a perfect solution. After classifying a number of documents I would need to visit each document in its newly assigned destination group in order to move it into the database and then back to the external folder. I would either have to interrupt my classification workflow after each document or I would have to memorize every single target group assigned by the classification process and do the in-and-out game on each document afterwards.

Do your indexed groups in the database ever, by design, contain any non-indexed documents? Or do you keep only indexed documents in the groups that are indexed?

If you do intentionally mix indexed and non-indexed documents in the same indexed group, do you use the DEVONthink flag? All the labels? Do you lock documents? (Looking for a unused identifier to construct a smart group here.)

As a generality, I personally do not mix indexed and imported documents in the same database. Imported documents are only imported as a transitional step, before moving them out again. Otherwise life gets too complicated. But it would be good if somehow the out-in-out process, when it is necessary, could be made more automatic. In other words, I agree with Ralph and Greg above (I think!).

I want what Ralph wants, but for different reasons. I’d like to be able to access the database as a standard folder hierarchy on Dropbox, so I can read DT files on iOS. I bounce too much between iOS and OSX for the manual syncing of Devonthink to Go to be practical.

I do not deliberately mix indexed and non-indexed documents in the same group with the exception of new documents created with DT, which are by default stored in the internal database until they are explicitly moved to the external folder. Are you thinking of a smart group that contains all non-indexed files and moving all files in this group to the external files in one go?

Yes, and also creating a smart group of all the indexed files that allows you to move all documents into the database, then use another smart group of all documents in the database to move all documents to the external folder. This would allow you to classify/move your documents as you mentioned earlier, without interrupting your workflow to do the in/out game on each document. Once you have completed the reclassification, the two smart groups allow you to quickly move all the documents in the filesystem in just two steps.

I would like to add my support for a “file system only” type database. This would essentially make the DT database nearly as accessible in the OSX file system and viewable as an organized structure by other apps, such as dropbox, Leap, and others, which utilize the OSX file structure. +1 for me!

I add my support for this approach, too

Yes I would love this too. I have a Dropbox folder syncing with a PC at work, but on my Mac I index this folder with Devonthink. I always have to be very careful not to move files in DT for fear of ruining my PC end.

The end result is I that I end up underutilising DT’s full feature set because of this friction.

It is OK to move indexed files (or replicate them) out of the group that shows the file(s) that were indexed from Dropbox or other filesystem folder. Internally in databases, DEVONthink knows the filesystem path to the original file and does not change that path. Just be aware that

  • These moves are easy to forget about. Showing the Path in a column view can remind you where the “true” location of a file on disk is.
  • If you delete the group that you originally indexed files into, the files you moved out of that group are still indexed

Reader Greg Jones has posted lengthier discussions on this topic and you might want to check out his postings.

I think half the problem is that even if I can move files within the DT database, that would then break my mental model with what is on my Mac in the Finder/Dropbox and also on the PC.

I also use Launchbar to access files, so that’s another aspect that I want to keep consistent.

Having DT just reference/represent the file system religiously would help remove these mental friction points.