wiki:UserGuidelines/Admin/Upgrade

Version 15 (modified by Fran Boon, 10 years ago) ( diff )

Update to current process

Upgrades

Table of Contents

  1. Old
    1. Fabfile
    2. Older
  2. See Also

The basic process is:

  • Update your local development branch:
    git pull upstream master
    git push
    
  • Refresh your Test instance with the current Production data
    clean test
    
  • Upgrade the Test instance (which also migrates to the new DB schema):
    pull test
    
  • Resolve any database migration issues that you encounter...documenting these for the script which you use to upgrade Prod
  • TEST
  • Enhance your migration script as-required to fix silent database migration issues
    • some of thesse can be found by reviewing the code changes for the modules which you are using
  • Repeat until happy
  • Backup Prod
  • Repeat upgrade script on Prod

You may find this useful (especially if you have a smaller database...the process here takes too long for longer databases):

Old

Fabfile

This can be done using Fab:

fab <systemname> deploy

Older

Put site into Maintenance:

vim /etc/crontab
#0-59/1 * * * * www-data cd /path/to/web2py/ && python web2py.py -C -D 1 >> /tmp/cron.output 2>&1

vim /etc/apache/sites-available/maintenance
  RewriteEngine On
  RewriteRule ^/(.*) /maintenance.html

ln -sf /etc/apache/sites-available/maintenance /etc/apache/sites-enabled/mysite
/etc/init.d/apache2 force-reload

Update code:

cd /path/to/web2py
git pull upstream

Trial run:

cd /path/to/web2py
python web2py.py -S eden -M

Fix any Database Issues:

  1. The .table files in the databases directory contains what web2py knows about your database
  2. You need to set deployment_settings.base.migrate=True in models/000_config.py before you update the code and switch back to deployment_settings.base.migrate=False later on.
  3. In case of database mismatches - check the databases directory for the appropriate .table file and change accordingly.

If using MySQL, then can use phpMyAdmin, if using SQLite then can use sqlite3 command-line tool:

Restore site into production:

vim /etc/crontab
0-59/1 * * * * www-data cd /path/to/web2py/ && python web2py.py -C -D 1 >> /tmp/cron.output 2>&1

ln -sf /etc/apache/sites-available/mysite /etc/apache/sites-enabled/mysite
/etc/init.d/apache2 force-reload

See Also

Attachments (1)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.