A while back, I wrote about the problem of moving a Lightroom library and updating the locations of all of the images. It’s easy to relocate a library that consists of a single folder of images – you just click the “locate missing image” icon on the “?” in any of the images in the folder, navigate to it, and all of the images in the same folder get located as well. However, if you have lots of parallel folders, you have to repeat this process for each individual folder. If, like me, you have hundreds of folders (say, photos in folders named by date), this is an insane mess of labor.
If you’re up for a little hacking, install sqlite3 (if you don’t have it already, it’s built into OSX now) and then use the following statement to manually update your library (quit Lightroom first, of course). The internal database format changed between Lightroom 1 and Lightroom 3. The following code worked for me to move a huge batch of parallel folders. Use at your own risk and back up your library before you do this, of course, in case it doesn’t work for you.
sqlite3 /path/to/your_catalog.lrcat
update AgLibraryRootFolder set absolutePath=replace(absolutePath, '/old/path/fragment', '/new/path/fragment') ;
.exit
This will change “/old/path/fragment” to “/new/path/fragment” in all of your folders’ pathnames.
Type carefully.