Solution: Upgrading eZ Publish 3.3 to 3.9

Prerequisits

Requirements

  • Backup the database!

Steps

  • Then, open Notepad and list your upgrade path, with every stop. You can then copy and paste out of Notepad onto the command line.
  • Pay particular attention to the scripts listed on each page (for example: upgrading from 3.3-5 to 3.4).
  • Some of the scripts don't run (due to version conflicts), and some are optional. Read the pages in the upgrade documentation carefully - or you'll have to do it over and over.
  • Take your time and be patient. The commands below are an example, you'll need to substitute your database access parameters as well as the siteaccess names.

Commands will vary between different upgrade paths.

mysql -udb_ez -p db_ez < update/database/mysql/3.4/dbupdate-3.3-5-to-3.4.0.sql

php-cli update/common/scripts/updateremoteid.php
php-cli update/common/scripts/updatesession.php
php-cli update/common/scripts/updatetoplevel.php
php-cli update/common/scripts/addorderemail.php

mysql -udb_ez -p db_ez < update/database/mysql/3.4/dbupdate-3.4.0-to-3.4.1.sql
mysql -udb_ez -p db_ez < update/database/mysql/3.4/dbupdate-3.4.1-to-3.4.2.sql
mysql -udb_ez -p db_ez < update/database/mysql/3.4/dbupdate-3.4.2-to-3.4.3.sql
mysql -udb_ez -p db_ez < update/database/mysql/3.4/dbupdate-3.4.3-to-3.4.4.sql

mysql -u db_ez -p db_ez < update/database/mysql/3.5/dbupdate-3.4.4-to-3.5.0.sql

php-cli update/common/scripts/updateiscontainer.php -s new
php-cli update/common/scripts/updateniceurls.php
php-cli update/common/scripts/updatesearchindex.php --clean

mysql -u db_ez -p db_ez < update/database/mysql/3.5/dbupdate-3.5.0-to-3.5.1.sql
mysql -u db_ez -p db_ez < update/database/mysql/3.5/dbupdate-3.5.1-to-3.5.2.sql

php-cli update/common/scripts/updatetoplevel.php -s adm
php-cli update/common/scripts/updateeztimetype.php -s new

php-cli update/common/scripts/updatecrc32.php

mysql -u db_ez -p db_ez < update/database/mysql/3.6/dbupdate-3.5.2-to-3.6.0.sql

php-cli update/common/scripts/convertxmllinks.php
php-cli update/common/scripts/updaterelatedobjectslinks.php -s adm

mysql -u db_ez -p db_ez < update/database/mysql/3.8/dbupdate-3.6.0-to-3.8.0.sql

php-cli update/common/scripts/updatemultilingual.php -s new
php-cli update/common/scripts/updaterssimport.php -s new

mysql -u db_ez -p db_ez < update/database/mysql/3.8/dbupdate-3.8.0-to-3.8.1.sql
mysql -u db_ez -p db_ez < update/database/mysql/3.8/dbupdate-3.8.1-to-3.8.2.sql
mysql -u db_ez -p db_ez < update/database/mysql/3.8/dbupdate-3.8.2-to-3.8.3.sql
mysql -u db_ez -p db_ez < update/database/mysql/3.8/dbupdate-3.8.3-to-3.8.4.sql
mysql -u db_ez -p db_ez < update/database/mysql/3.8/dbupdate-3.8.4-to-3.8.5.sql
mysql -u db_ez -p db_ez < update/database/mysql/3.8/dbupdate-3.8.5-to-3.8.6.sql

php-cli update/common/scripts/correctxmltextclasses.php --global

Results

I upgraded from 3.3-5 to 3.8.6 and it went fairly smoothly.

Problems

Issues I did encounter

  • updatetoplevel.php updated override/content.ini.append.php like so, and the system didn't run well. (I commented the changes out):
#[NodeSettings]
#RootNode=4159
#UserRootNode=4160
#MediaRootNode=4161
#SetupRootNode=4163
#DesignRootNode=4162

Results

updateiscontainer.php didn't run, and although I normally don't make changes in the database - I changed the ezcontentclass table and set the is_container flag manually.

  • At this time, you should be able to use the admin console.
  • Go to Setup > Upgrade > and check the database consistency.
  • Manually run any SQL through the database engine.
  • Clearing the cache and updating the search index are important.