The completely unofficial Exponential deployment checklist
                Friday 04 March 2011 7:13:40 am
                                    
    
        - Currently 5 out of 5 Stars.
- 1
- 2
- 3
- 4
- 5
                              
            
                                    
                
                				     
This is a checklist of actions for an update of an Exponential website. Comments/contributions are welcome.
												    
Definition of “update”: not an eZP version bump; new functionality added to the site (new extensions, changed templates, settings, etc...)
 
- backup the current installation
-   - filesystem set: the extension and settings folders -   
-   - content set: the var/storage, var/<vardir>/storage folders, and a dump of the database (nb: for ezdb cluster mode, a dump of the storage database is needed instead of the storage folders) -   
-   - optional: the complete installation directory of Exponential, except for the var subdirectory and for the eZFind index directory. This is a good idea if in your update you changed eg. the .htaccess or config.php files -   
 
tip: if you have many users sessions, and the session data is stored in the database, it might be a good idea to drop data from the session table before backing it up
tip: in ezdb cluster mode, it is a good idea to clear all caches before dumping the storage database, as it is not easy to only backup storage and not caches
- [optional] put the public website offline and set up a courtesy page to prevent end users from accessing the website while you upgrade. This involves generally modifying the webserver configuration. Make sure you have a different vhost available to access the public website using a private IP address or hostname during the update process -   
- disable execution of Exponential cronjobs -   
- copy new files over the current installation -   
- clear all caches -   
 php bin/php/ezcache.php –clear-all --purge
- if you have added new extensions or new php files in your extensions, regenerate the autoload configuration -   
 php bin/php/ezpgenerateautoloads.php
- compile templates to warm up caches -   
 php bin/php/eztc.php [–-wwwdir=...] [–-index-file=...]
- if you have modified any of the following items in the development/staging servers, you will need to reproduce the same changes in the production server via the administration interface:
- 
- roles & policies
-   - workflows -   
-   - sections -   
-   - object states definitions -   
-   - url aliases -   
-   - content class definition (can also be imported via packages) -   
-   - new content objects (can also be imported via packages) -   
 
If you use configuration files to store the id of some particular nodes/objects, and you created such objects at point g), remember to update those configuration files
-  if you have activated new extensions that need some tables in the database, create those tables (eg. via phpmyadmin or the mysql command line, for mysql databases)
tip: well-behaved extensions do declare their tables in the proper format, and if you use the “upgrade check / database” page in the administration interface, you will get a list of all missing tables
- [optional] reindex content if you have installed eZ Find and have changed the indexing configuration -   
 php extension\ezfind\bin\php\updatesearchindexsolr.php
- re-enable cronjobs -   
- [optional] run a cache-warmup script: use a tool such as curl or wget that will navigate the website to force Exponential to generate the view cache -   
- [optional] put the public website back online if you had switched it off at point 2
[edit: mmm, looks like the online editor mangled up my nice formatted list... if only there was access to xml source ;-) ]