Two computers, two libraries, questions

I started with this thread: Working with two libraries / or other approach

But a) it didn’t quite match my hoped for use model, and b) there are still some open questions about libraries and other bits of meta data. Here’s what I’m doing now: I have an Ubuntu box set up as a Samba server with most of my photos on it, and it is where I want to have them. I have a desktop Windows machine where I’ve pointed the location of the photos to the samba share. I also have a Windows laptop that I take on trips and load photos onto. When I get home, I import the photos from the laptop by, a copying them to the samba share, and then importing them using the desktop. I’d like to simplify this.

It would be nice to use a local library on the laptop when on the road, and use a different, common library for both the desktop and laptop when at home. Can I copy the library directory to the samba share and point to that from both machines? and then use a different library when disconnected on the laptop? It would be nice if you could do that in a sort of two step redirection from inside darktable - i…e. tell darktable to switch to a different library from the default installed one, which doesn’t look modifiable without re-installing.

On a related note, I once came across something about working disconnected from the photo library, but can’t find it anymore. Any help with that?

Do you mean this:

--library <library file>
darktable keeps image information in an sqlite database for fast access. The default location of that database file is $HOME/.config/darktable/library.db. Use this option to provide an alternative location (e.g. if you want to do some experiments without compromising your original library.db). If the database file does not exist, darktable creates it for you. You may also provide :memory: as the library file, in which case the database is kept in system memory – all changes are discarded when darktable terminates.

[Starting darktable from the command line] (darktable 4.2 user manual - darktable)

If you use :memory: for --library and also save XMP files, then you still have your edits (just not in a database). Then you can copy your raws and related XMP files to your Samba server.

There is also the local copies feature, but I’ve never tried it.

You could run DT with 10 libraries if you wanted… you just have to run it with a modified command line…or in my WIn world using different shortcuts that run DT and use the --library and specify a different library…

@elGordo has provided tips and links…

Without knowing what’s in the library.db or the other config files, I don’t know what effect using one from two different computers would have


The configuration and operation files of darktable.pdf (183.9 KB)

Depending on what features you use and how you use DT you might not even need a library… in that case you can use --library :memory: as an option. I think it creates a temp library each time you use DT that gets deleted when you exit…so basically you rely on the xmp files and you use DT basically as an editor…

I’d like to import them into a library? which has the storage on the samba server, as well as the library.db.
Maybe using an ephemeral library with the :memory: location is a good way to go when I’m traveling


Nothing is imported just incase that is not clear…its just a database of locations and thumbs… thats why if you move things from your file system outside of DT that it gives you the skull icons.

What about keyword lists: one of the primary reasons I use dt


Keywords, title, and description are stored in the sidecar (XMP) files. I use those fields for exchange with another program through the sidecar files.

The other fields from “metadata editor” in lighttable view are probably stored there as well, but I never use those.

Because of my english is very simple You should know my understanding of Your problem is not exact.

This is my entry placed in shortcut ““C:\Program Files\darktable\bin\darktable.exe” --configdir C:\Users\darek\SynologyDrive\darktable”

Each of my 3 Windows computers has this line.

I use Synology Drive for syncing info between computers which is similar to Dropbox.
Each time when info in each config file is changing it is immediately syncronized with files on my Synology Drive and when I run another computer these files are syncing with this computer (of course I have to wait moment for syncing is ready).

This causes all config files on each computer are up to date.


1 Like

Hi Todd, could you explain how to do this a bit more. The reason is that with LR I could put a database (catalog in LR speak) on each of my external backup drives and use this to import only new images from my working computer. If I could work out how to do something similar with DT this would be great for backing up purposes.

Terry don’t LR datABases actually import the images?? The dark table database is merely an indexer… so you can have one pool of images and more than one database… So maybe personal and work or any combination… others would say you could just tag or filter from one database…

I feel both DT and LR databases (catalogs) are very similar. The difference with LR is that in the user interface you have the option to ask it to open a specific catalog. But your suggestion of using different shortcuts to open different databases sounds like what I would want. I must experiment with this idea. Any helpful advice or experience would be appreciated.

Indeed, keywords for a particular image are stored in the xmp file for that image. However, I have a list of over 3000 hierarchical keywords that I use for tagging photos of plants, and I want that list available when I’m culling and tagging my photos. I’d also like to have presets and styles at hand. A little sleuthing tells me that the data.db SQLITE database in the installation folder contains that information. @DarekK is on the right track and closest to what I’d like to do with a minimum of effort.
Similar sleuthing on the library.db file tells me that the library.db contains info on the modifications done to each image, along with the image metadata, probably all things that could be recreated from the xmp file, but allowing quicker access.

So, I think what I want to know is: how do I share these files: data.db and darktablerc ?
I can’t tell from the docs what --datadir and --configdir refer to on Windows, or if they’re even the right options.

This isn’t quite what I need: I would be creating new images on the laptop and then adding them to the home library.

These are command line switches that at run time direct DT where to look for those files…

I just use it to run more than one version for DT…keeps everything separated. Even my main version I run from a folder in C drive called DTconfig instead of tucked away in the appdata folder. Just makes it easier to find and back up. I really don’t make use of any of the database functions… I currently am using one but for a long time I just used the :memory: option… I do have a shortcut still to run that way if I so choose… in the end those command line switches are pointers… you can locate and try to keep things in sync within that framework… I am sure you can do a small test case with a subset of folders to see how you can make it work or not…

That was the question: what are the command line switches to control that


Not sure if you have it or not…

datadir to locate your data.db
library to locate your library.db
configdir to point to a folder that would have all the config files including data.db and library… unless you use the ones above in addition to locate them else where…

I read that and it did not mention either data.db or darktablerc, nor did it reference the relevant Windows directories so I was unable to come to decide what to use