Moving My Library - How to tell DIM
(Sorry if there's threads on this - Haven't got far with forum search, and can't spend that long reading through the results.)
I need to move my DS4 My Library to an external hard drive from the C drive it's always been on (running out of space).
In most respects this is not a problem: Over the years, my Poser 4, 6, 8, Pro 2012 and Pro 2014 runtimes and DS2 and DS3 content directories have all made this migration without trouble.
Modifying the content locations pathed in DS4 is simple, as is modifying my DS4 location to install things to in DIM.
I haven't installed everything up to now by DIM - almost all the stuff from sources other than DAZ, and also all DAZ content from before the initial release of Genesis were not handled bby DIM - but I HAVE installed/reinstalled with DIM everything from DAZ dating after the initial Genesis release. And, of course, every now and then there's an update to an already installed product which I'd like DIM to go an handling. So the question is, while DIM will know the new My Library location for anything I get new after I move My Library, how is it to know that the stuff ALREADY installed has been moved? I really don't want to uninstall everything with DIM before the move and then reinstall again afterwards.
I don't suppose, if I edit the installation location path in the DIM settings interface (as opposed to adding a new installation location), DIM will then just realise all the stuff it's already installed to that location has moved to the new path, will it?
If not, would doing a global search-and-replace of the 'UserInstallPath VALUE' lines in the manifest .dsx files in the \DAZ 3D\InstallManager\ManifestFiles directory do the trick? I can do that - search old DS4 path, replace with new path - in a single operation on the whole directory with my text editor. Or would that screw things up somehow?
Comments
I'd like to think it would be as simple as the underlying database telling DIM what is installed, but I wait to see what happens with/for you.
My guess would be that editing the files in ManifestFiles would do it, but I don't know if there's some reason that would be insufficient.
I have done this a couple times as I've moved content around to my NAS. As fixmypcmike mentioned, you just need to edit the Manifest files without having to do anything else (like uninstalling and reinstalling). Even better you can use Notepad++ which allows batch editing and do it all in one swoop.
Steps are easy:
1. COPY the content to the new directory
2. EDIT the Manifest files
3. CONFIGURE DIM to use the new directory
4. CONFIGURE Daz to use the new directory
And voila! At that point I uninstalled a couple items from DIM and reinstalled them just to make sure everything worked alright, but that was more peace of mind than anything...then deleted the old directory.
Thanks.
As I said in my first post, I can do a global search-and-replace on all the manifest files with my text editor (which is Textpad: in fact it can do it two ways - bulk load all the files in the folder simultaneously and do an 'all files' global search-all-and-replace-all, or do a Find In Files search-and-replace, specifying the manifest directory). I just wanted to know if that was sufficient (i.e. there's not a second record of the locations in DIM somewhere that would conflict) and necessary. Clearly, from your reply it is, so thanks - I'll go ahead. May be a few days, though. I need to transfer all the contents of a 1TB HD to a 2TB HD and tidy some stuff up first.
It seems to me there really ought to be something built in to DIM to allow for moving a My Library directory (and/or runtime), and letting DIM know the previously installed files to a location have moved to the new path. It's not as if it's something hardly ever likely to arise, and users really shouldn't have to bulk search-and-replace paths in manifest files (as simple as that may be for some of us with capable text editors). Of course, with many product updates it doesn't matter if DIM fails to delete the earlier version from the new location before installing the new version there, as many updates only involve overwriting the old files. But for updates where some files are moved or deleted, then it does matter if DIM doesn't manage to delete the old ones because the location's moved.
It seems to me one could make a good case for the manifest files storing the install location NAMES rather than the paths fro each product, so if the user moves a library directory and edits the path of that location name to the new path, DIM will just find the new location when performing updates on the products. Either that, or there ought to be a function in the DIM settings for installation locations, so that if one changes the path to a location, one can click an option that makes DIM amend all the manifest files of products inatlled to that location, changing the path in each to the new path.
Well, just in case somone else wanting to do this searches out this thread sometime in the furure, I'll just finish the 'story'.
Copied My Library from C to F drive (took quite a time). Started DIM, changed the path of the install location setting. Checked (by Show Installed files on some products) that DIM wouldn't automagically see the files had moved - it didn't - and that Fix Installed Files Registry wouldn't sort it out - it didn't. Quit DIM.
Used TextCrawler to do a Search And Replace, old path for new (up to '/DAZ 3D'), on all the files in the ManifestFiles directory. Started DIM again. Everything sorted, Show Installed Files shows and links to the moved files. Job done. Just need to explain the move to DS now.
So, to answer my original question, telling DIM the contents of a Library have moved involves just (i) changing the install location setting in the DIM settings, and (ii) search-and-replacing old path by new path in the files in the ManifestFiles directory.
Is there any easy way in editing more than 11000 Manifest files?
I use Notepad++, it can do a global search and replace.
Thank you for the hint, Fixmypcmike.
But I am using Mac mini...
BBEdit is a great editor for Mac: http://www.barebones.com/products/bbedit/
Thank you, Cris Palomino.
Text Wrangler, also from Barebones, will do it too. and it's free :D
Thank you,Scavenger.
I think I might need to do this, but I fear I'm not well acquainted with what the manifest files are and primarily, where to find them in order to change them, since I haven't had any issue where I needed to access them before.
Under Windows they are in C:\Users\Public\Documents\DAZ 3D\InstallManager\ManifestFiles, on a Mac I believe they're in Libraries/Application Support/ or Documents. When DIM installs a product, it creates a ,dsx file in ManifestFiles which includes the location the files were installed to, so that it can uninstall or update the product.
this was a good thread, as I needed to do this today, and this reminded me about it :)