I have one Lightroom database for my photographs, but multiple computers. Of course I want be able to edit my photos on every computer. The obvious solution is to put the catalog on a network share. But the catalog is a sqlite-Database which is build to be accessed by one process only. Because of this, Lightroom forbids to use a catalog that is located on a network share.
My solution is to rsync the catalog before Lightroom starts and sync it back, when the process terminates. To avoid conflicts, I create a lockfile during the runtime of Lightroom. Not very fancy, but this works well for me.
if [ -f /Volumes/Pictures/Lightroom/lockfile ]; then
echo "Catalog is locked by"
echo `hostname` > /Volumes/Pictures/Lightroom/lockfile
rsync email@example.com:/zdata/Pictures/Lightroom/Lightroom-4-Catalog.lrcat /Users/$USER/Pictures/Lightroom/Lightroom-4-Catalog.lrcat && \
open -W -a "Adobe Photoshop Lightroom 4" --args /Users/$USER/Pictures/Lightroom/Lightroom-4-Catalog.lrcat && \
rsync /Users/$USER/Pictures/Lightroom/Lightroom-4-Catalog.lrcat firstname.lastname@example.org:/zdata/Pictures/Lightroom/Lightroom-4-Catalog.lrcat && \