I recently moved several of my EagleFiler libraries onto Dropbox. As discussed in the EF manual, this should work although it warns “make sure sync on Dropbox has finished….”
Then I turned on “Smart Sync” in Dropbox. This is supposed to delete rarely used files from your hard drive, saving considerable space. This would be just what i need - I have large EagleFiler databases that I use only a few files at a time from.
Now, however, Dropbox seems to be going crazy with syncing files that have not changed. Meanwhile, EagleFiler is trying to reindex my whole database every time I start it up.
Specifically:
Dropbox is apparently syncing all the Notes files in my database. Stored in the folder called Notes, with names like 6578.rtf. Dropbox tells me they have just been edited, which is nonsense.
It is also syncing folder with names like 171 which DB says were just created. Dropbox appears to be creating these folder for some reason related to syncing. See attached screen snap for the file path.
I wonder if each program is signaling “this file has changed” to the other program. That is, EF somehow is flagging files that they have been edited, so Dropbox uploads them from my Mac to the DB server. EVERY time. Then for some reason EF decides the file has been altered, and re-indexes it. Indexing takes days, and appears to re-start at the beginning every day or so. Then Dropbox decides the file has changed, and re-uploads it. An endless loop.
For now, I am trying to turn OFF Smart Sync, which is a shame. Has anyone gotten Smart Sync to work with an EagleFiler data base in dropbox?
I see why you’d want to do that, but I’m not sure Smart Sync, as currently implemented, is a good fit for EagleFiler. Longer term, I plan to have native EagleFiler support for this sort of thing.
I don’t think EagleFiler intentionally modifies any note files except when you edit them. It does verify when you open the library that the note files exist for the records that are supposed to have notes. I wonder whether requesting the file that’s under Smart Sync somehow triggers Dropbox to modify it. EagleFiler normally checks the notes 1 minute after opening the library. You could try holding down the Shift key during this time to prevent it from doing that, and see whether that makes a difference as far as the note files syncing.
EagleFiler creates a bunch of temporary files as you are working with the library. The entire “Temporary Items.nobackup” folder does not need to be synced. You can see that it’s excluded from syncing to iCloudDrive, but as far as I’m aware there’s no way for an app to tell Dropbox to exclude a folder. You may be able to do this yourself, though, though the Selective Sync feature.
EagleFiler checks the file modification dates in order to see whether it needs to update its indexes, and it checks the extended attributes to make sure the tags are in place. I’m not sure whether asking for the date or xattr causes Dropbox to download the file. In any case, if Dropbox does download the file, this marks the file’s “ctime” as the time of the download (as described here), so EagleFiler will think it has changed. So if you’re using Dropbox, you may prefer to click here to tell EagleFiler to ignore the ctime and only look at the file content modification date.
These are all good ideas
Thanks. Overall, I think that Dropbox selective sync is not mature enough to use for a database. But I will try some of your suggestions, also.