I use the Gnome application Glom to maintain a personal database of things. I use it instead of KDE’s Kexi because it is more complete and doesn’t crash nearly as much. I created my Glom database before I upgraded to Fedora 9 to get my new KDE4, which means it used Postgres 8.2. Fedora 9 uses Postgres 8.3.1, which uses an incompatible database format. Upgrading it takes a bit of work, but it can be done very easily.
First, you need to get a copy of Postgres 8.2. I downloaded the source tarball from postgresql.org and unpacked it. In it, I created two directories, build and install. Since I will only need to run 8.2 very briefly, I’m installing and building it all in once place. After its all done, I can then just remove the tarball and the one directory it created.
Enter build and run ../configure --prefix=/absolute/path/to/install/dir with the correct prefix. Then make and make install. Now you’ve got a tiny temporary installation of postgresql. Set your PATH environment variable to the bin subdirectory where you installed it, then run glom. It should start normally and everything works. In another terminal, use pg_dumpall -h localhost -p 5434 >outfile.sql to get a dump of the glom database.
Once your database is neatly tucked away inside that file, you can kill the 8.2 server with ctrl-c or SIGINT. Now, rename the directory where the glom database is held. You’ll have to ‘recreate’ the database in glom, using the new 8.3 server. Just rerun glom and create a new database with the same name and folder as before. Keep it running while you run pgsql -f outfile.sql -h localhost -p 5434. After that finishes, exit glom.
After that, copy the .glom file you find in your backup over to replace the one glom just created. All properties of your database should now be upgraded to the 8.3 postgres format. Feel free to delete the temporary install now (after checking to make sure it works of course).
I can imagine that there are one or two people out there with these questions, so I’ll answer them right here:
Because 8.3 is a newer version. The frontends (pgsql, pg_dumpall) shouldn’t care what version the server uses. They contain bugfixes and are more (read: exactly) compatable with the 8.3 server, so it makes sense to use something that is both forwards and backwards compatible. 8.2 doesn’t know about 8.3, so there might be some unforseen confusion.
That file holds all your form layouts. Without it, you’d have to redesign all your data entry pages. That’d suck, huh?