Syncing databases across computers


Hi all,

Firstly, let me say that beets is a wonderful tool that is letting me put order in my music collection.

My question is as follows. My music library sits on a NAS, which I then mount on a desktop (linux) and a laptop (macOS). The contents are the same (they both point to the same network share), but the mount path is differerent. macOS insists on mounting drives in /Volume/, and my home directory is in /Users/myname, whereas in Linux, my home is /home/myname and the network share is pretty much wherever I feel like it.

I would like to keep the beets database on both machines in sync as I change fields and add music. What’s the best way of doing this? I could mount the network share in a similar place on Linux (make a /Volume/ directory to mount in), but would copying the contents of .config/beets between machines work? Or would some sort of syncing script be required?

Please advise!



Good question. We don’t have any kind of multi-machine sync setup currently—that would be really cool but a big technical challenge. Perhaps the right thing for your situation would be to have one copy of the database with relative paths to files. That is also not yet implemented, but it’s at least a pretty straightforward feature—you can see the relevant thread here:


Thanks for the quick answer Adrian! I think I’ll do it with mounting the NAS directory at the same spot on Linux as on macOS and sync the db using git or somesuch.

Bonus question: to initially create the db on a second computer from an already existing, well tagged and laid out directory of music, I used

beet import -A -C -W <path to NAS mount point>

Is this the correct fastest way to do this if everything is already tagged correctly and living at the correct place?



Yep! That’s exactly what I would do.


Quick follow-up. I actually am trying setting $BEETSDIR to the root of my library. Since I’m the only one adding to it, it shouldn’t be a problem, I guess. So no matter where I access it from, the db is always up to date. Mind you, I have no automated processes that update the db. It’s always done by me at a command prompt.

Not ideal, but it’ll do for now.