Migrating Evolution 1.4 to 2.x


This is something that I've been trying to figure out how to do for some time now. I finally was forced into it by upgrading my build server to FC5 (and merging with my staging server) at home. The process turns out to be fairly simple, but other than a post to a mailing list it doesn't appear to be documented anywhere. So I'm putting it here in the hopes that someone else might have a better chance of googling it later.

First things first: make a backup copy of your evolution 1.4 data directories. Evolution 1.4 saved all its data under ~/evolution (remember that “~” means your HOME directory). Since I was not only upgrading Evolution but also moving the data to a new server, I backed up this data from the old build server onto the new build/staging server under ~/backups/buildserver.

If you haven't run Evolution 2.0 on the new server yet, do it once to prep the system for this process.

$ evolution

Quit the program, then make completely sure Evolution 2.0 is not running in any way:

$ evolution --force-shutdown

Tell Evolution that you were really running Evolution 1.4 previously. The following two commands will do that:

$ gconftool-2 --set /apps/evolution/version --type string "1.4.0"
$ gconftool-2 --set /apps/evolution/last_version --type string "1.4.0"

Then you'll need to remove the Evolution 2.0 data directory. Evolution 2.0 saves it's data to a different directory, called ~/.evolution (notice the leading “.”). If you've already saved data there then you're on your own since I don't know how to merge two Evolution 2.0 directories – try more googling for that one. Now, remove the Evolution 2.0 data directory:

rm -rf ~/.evolution

Now copy in your old Evolution 1.4 directories to your new home directory. Remember I made a backup of my original Evolution 1.4 data directory under ~/backups/buildserver, so for me the process looks like this:

cp -r ~/backups/buildserver/evolution ~/

Now the data directories are ready for migration. Now restart Evolution 2.0 on the new server. It will see the gconf configuration and find the old data directories and start the process of migrating all your old data into the new ~/.evolution data directory. This can take awhile if you have a lot of saved data. Once it's done, however, you should be ready to rock on the new server. The migration process will ask if you want to delete the old data directories. Since we saved a backup of these directories before we started, it should be safe to allow Evolution to clean up those copied old data directory. However, if you want, you can tell it not to and then you can manually remove the directory later. It's up to you.
One other process that the post to the mailing list suggested was rerunning the gconf commands to reset the gconf configuration to 2.0. However, I didn't do that and so far I don't see any problems. I'm not sure if this last step is required. Let me know if you find it necessary.

Related posts