Upgrading to 2.1CVS Head from 2.02

Combat Wombat
Profile Picture
Joined: 02 Jul 2008

Upgrading to 2.1CVS Head from 2.02

Posted:14 Oct 2008 (03:27 UTC)
(:exclaim:)Warning, this may curdle your milk, kill your cat, or start WWIII.(:exclaim:)

In migrating from the version 2.02 to 2.1Beta (CVS Head), we encountered numerous issues, that involved many hours on the IRC channel, trying to sort them out.

In the end it came down to being some issues with the upgrader (still in Beta, remember?), not handling the MySQL database and the exceptions it was throwing. The exceptions were caused by the tables in the MySQL database being in the InnoDB format. The 202 installer had created them like this, I guess.

InnoDB is great for database integrity, when a loss of connection occurs, the table is not corrupted. But it comes with a price of speed, and flexibility when compared to the MyISAM table type.

Our InnoDB tables were somehow wrong in their column definitions for the liberty_meta_types tables, and this was causing the inability to upload images through fisheye galleries. In order to fix the table I had to delete it, and recreate it. I couldn't delete it because of Foreign Key Constraints. These are additions to the SQL database that InnoDB tables have, to keep their integrity. With the PHPMyAdmin that I had access to on our shared webhost, I was unable to list these, or delete them.

What worked:
BACKUP exclaim
I upgraded the site files to CVS head. This is not for the faint of heart, and may not be necessary for you (if by the time you read this 2.1 is released.) I ran the installer page ( /install/install.php), and answered what I could there. This does make changes to your database.

Using PHPMyAdmin I exported the entire database, as SQL, to my desktop. Then using a text editor, I replaced all instances of InnoDB with MyISAM.

Then I removed the database altogether using the tools provided by my webhost, and recreated one with the same name. Using PHPMyAdmin, I imported the SQL file from my desktop to the blank new database.
Now I can browse the site.

This is very much simplified over the steps that I actually took, but it should be all that is necessary.
My real steps involved multiple backups of SQL files, and numerous directories on my webhost with copies of the bitweaver installation. If you are going to do that, make sure you copy the /kernel/config_inc.php, the /storage directory, your theme directory (/themes/styles/themename), and the temp directory if you are using nexus menus. If you are using a temporary directory as a test zone, then remember that the config_inc.php has path information in it. So does the site's kernel_config table, see cookie_domain there.
xing
Joined: 07 Mar 2004

Re: Upgrading to 2.1CVS Head from 2.02

Posted:16 Oct 2008 (06:38 UTC)
the InnoDB and MyISAM issue hasn't been resolved yet but that wasn't the main issue with the database problems after the upgrade - it was the lack of sequences added to the database. i've fixed that problem and have tested the updater with your database dump, which seems to work well now. thanks for being so patient...

i will look into the InnoDB MyISAM table stuff as well, but this is a bit more complicated since it was not handled correctly when it was first introduced.

x