Reverse index? Rsync to OneDrive folder?

This might be a somewhat unique use case, but my firm requires that all of my work files be saved on Microsoft OneDrive.

Due to past bad experiences with data loss when indexing large file folders in DEVONthink, I’d rather avoid the obvious solution of keeping the files on OneDrive and merely indexing them in DEVONthink.

Is there another method to achieve this? Essentially I want my DEVONthink database periodically mirrored or cloned (preferably only propagating changes, e.g. what rsync does) to a folder on OneDrive while preserving the existing group hierarchies in DEVONthink as folder hierarchies on OneDrive.

The changes should definitely not be copied in both directions, not only but especially while DEVONthink is running.

hello

It would be really helpful if DEVONthink had a built-in feature to perform one-way sync of the database to a specific folder — for example, a cloud storage location like OneDrive

This would allow users to safely mirror their database contents without relying on indexing or risking conflicts from two-way sync
A simple export-on-change or periodic sync mechanism would be a great addition

How is that different from saving the database to the folder with eg rsync run regularly by a cronjob?

You wouldn’t sync to a specific folder. Sync is a specific term in DEVONthink’s parlance unrelated to what you’re referring to.

Why would you need granular exports versus relying on a solid local backup strategy?

This is what I assume rsync would produce — just folders by file type.

It doesn’t reflect the group structure inside DEVONthink.

That’s why I wish there were a native export that keeps the hierarchy

Sure, sync might not be the right term — I just mean an automated one-way export of the full DEVONthink database to a regular folder.

I wish I could access the contents and folder structure outside of DEVONthink — like on Windows or Linux.

Just being able to read the files is enough for me.

“Export → Files and folders” in the file menu should do what you want. Perhaps the export command in DT’s scripting dictionary does the same thing, if you pass in the root of a database. Worth a try, I think.

Ah, I hadn’t realized the ‘Export’ function might be intended for use that way. However, since it exports everything each time instead of just the changes, I am a bit concerned that the large amount of disk writing involved might strain the drive, or that the process might just take quite a while. Still, having this option is much better than none, so I’ll give it a try anyway. Thank you

vs

So, what is it? One-way export of the full database or just the changes?
Perhaps telling us what your goal is might help to provide better answers.

Sorry for the confusion. Both descriptions refer to the same thing: the ‘Export → Files and folders’ function we discussed.

My understanding is that this function performs a one-way export of the full database to a regular folder.

When I said ‘it exports everything each time instead of just the changes,’ I was describing how this full export works. It copies all the files every time, rather than only copying the files that are new or have been modified. An incremental export, which only copies changes, would be ideal for efficiency, but I understand the current function provides a full export.

My goal is still to have an automated way to get a readable mirror of my DEVONthink database in a standard folder, preserving the folder structure, so I can access the files on other systems like Windows or Linux.

The full export function seems to achieve this, although I was initially concerned about the potential time and disk usage from exporting everything repeatedly.

Just for my understanding, do you want a one way mirror DT->external only or do you want a two way mirror DT<->external? Two way mirror is what Indexing does.

2 Likes

Thanks for asking.
Yes, I’m specifically looking for a one-way mirror (DT → external folder) only.

You could probably script that, ie recursively traverse the group structure of your database, create a folder for each group and save the documents in that group to the folder. If and only if the groups/documents where modified after you last ran the script. Also, you might have to decide what to do with replicants…
Possible, but is it worth the effort? That’s for you to decide.