I finally succeeded in moving my iTunes database to an external drive. That was a lot of work. ;-) I moved my PhotoShop Album files first, and that was very easy -- mostly because PSA stores its information in a Jet database, which is identical to an MS Access database, so I just made the necessary changes with Access. Would that iTunes made it so easy. (Of course, the use of Jet may be why PSA is Windows-only.)
I have my own organization for my files and am not interested in storing them The iTunes Way.
If I'd known what I was about to go through, I'd have saved off all my music files, including the iTunes folder, somewhere and done some experiments with a small library. I'd recommend this approach to anyone who wants to improve on these ideas. Twenty or thirty non-iTunes tracks is plenty to play with.
Anyway, I thought I was home free when I read Schmolle's method (see links earlier in this thread). But I had the same problem as some other posters, that iTunes crashes before completing the import of the XML file. I never got around this, though there's a variant I didn't try:
1) Proposed method: rename the XML file and make the needed changes. Move the music files where you want them. Trash the .itl file. Launch iTunes, which will create a new database because it can't find any version (you renamed the .xml version and trashed the .itl version). Import the modified XML file. With any luck, this will retain all info. But as I said, I didn't think of this until I had succeeded with a more difficult method, so it might not work correctly, or iTunes might crash importing the XML file just as it does with Schmolle's method.
What I actually did first was this, and I think I'd choose this over my final method if I were doing it again and #1 didn't work (but #3 does have some advantages).
2a) If you're trying this, first make a record of any playlists you want to keep. Maybe iTunes will print them; I didn't try. I didn't do this and was sorry later -- see 2d).
2b) First I moved the music files. Then I made a copy of the XML file and made my modifications. I launched iTunes. At this point the entire library shows, but if you try to access any music file -- play it or Get Info -- iTunes says it can't find it (and I refuse to locate it, because I'm not going to do 1400 files this way). Then I imported the modified XML file -- iTunes did not crash when I imported it this way, as opposed to automatically at launch. This resulted in nearly twice as many entries -- iTunes was able to recognize and combine the entries which were in the iTunes folder, but all the rest are doubled. My first thought was, well, just sort on the status column, where there's that exclamation point for missing files. Click on the column header and nothing happens. That's the trouble with software where the designers say WE can't think of why anyone would do this so we won't let them.
2c) So then I found the critical trick. If you select multiple entries, do Get Info, modify one item (say Grouping, which is never used in my collection), and OK, then that item gets modified only for the files which iTunes can find. So I did Select All, Get Info, change Grouping to 9 (could have been anything), OK, View Options, turn on the Grouping column, sort by the Grouping. Ah-ha! Now the files iTunes can find are in the first part of the list and the ones it can't find are at the end. So now it's easy just to select the old entries and delete them, and the entire library is just fine.
2d) But the playlists are not fine. They are all duplicated, and the manual ones are empty. The automatic ones are OK, just delete the "wrong" one (the "right" one has columns for play count etc). For the manual ones, delete one of the duplicates and rebuild your playlist. Depending on the nature of your playlists, this may be easy or hard.
2e) For cleanliness, Select All in the library and clear the Grouping field, then View Options and disable Grouping.
But I decided -- for better or worse, probably for worse -- to try to retrieve them. Now as I write this, I'm thinking that maybe I could have made an XML file to import which would define them correctly. (They are defined in the XML file, but for some reason don't import correctly using the procedure in #2.) So I put everything back like it was and started over.
3a) Use the Grouping field to flag playlists. The obvious thought is just to assign a number to each playlist, but that doesn't work for overlapping playlists. I had few enough that I just ignored the overlaps and fixed them up manually at the end. Other possibilities would be to make a Venn diagram of all your playlists and assign a different number to each region -- might be worthwhile for some situations. Another would be to put a keyword in the Comments for each playlist. You'd have to be careful not to overlay one with another when changing multiple files at the same time. Perhaps put a standard comment on all files to start with (mine mostly have the same boilerplate comment added by EAC, which I used to rip my CDs). The the appearance of the Get Info dialog would clue you into whether you have a conflict. You'd need to use Smart Selectors at a later stage to separate them out. I haven't tried this. (It might be that I don't have all the answers. ;-)
3b) Same as 2b).
3c) um ... sure, I should have written this down when I was doing it at 3:00 in the morning. Better yet, I should have slept first ... OK, I'm a bit fuzzy on what I did. I think that I selected all the tracks which are NOT in any playlist (by sorting on the Grouping column and selecting the latter part of the list), and then proceeding as in 2c). I couldn't do this with the tracks I'd marked in 3a, because I needed to preserve the Grouping on the new files, so I deleted those old files manually. I only had about 75 tracks in playlists, so it wasn't bad. For many people, this step would be the killer for this method.
3d) Delete the excess playlists as in 2d). Now, with the library sorted by Grouping, rebuild the playlists.
3e) Same as 2e).
OK, start shooting. Remember, I agree that Schmolle's method is clearly the best when iTunes successfully imports the XML file at launch. All these shenanigans are just for getting around that crash.
Edward