[wiki:Haiti] ---- == Release Management for the Haiti Portal == We have 3 running instances: * Production: http://haiti.sahanafoundation.org * Dev/UAT: http://haiti-orgsdev.sahanafoundation.org * ~~UAT: http://haiti-test.sahanafoundation.org~~ !ToDo lifeeth * ~~Development: http://haiti-dev.sahanafoundation.org~~ !ToDo lifeeth We have several Code branches: * Haiti Portal: https://launchpad.net/sahana/haiti-quake-2010 * Haiti Offline: ''tbc'' * Trunk: https://launchpad.net/sahana/sahanapy * OR: https://code.launchpad.net/~michael-howden/sahana/haiti-quake-2010 ''to change to being trunk-derived?'' * RMS: https://code.launchpad.net/~uwthw/sahana/rms * VITA: https://code.launchpad.net/~nursix.org/sahana/vita === Release Process === Overall responsible Person: Fran 1. Where generic, new code is merged 1st into Trunk by Fran 2. Code is then merged into the Haiti branch by Fran * RMS is currently Haiti-specific so is merged directly to Haiti branch 3. Code is pulled from the Haiti branch to Dev by lifeeth or chamindra * Data is 1st synced from Prod * A 1st draft of a data migration plan is made 4. Code is pulled from the Haiti branch to UAT by lifeeth or chamindra * Testers to be informed before this via the group: ''tbc'' * Data is 1st synced from Prod * A more detailed data migration plan is made 5. Code is pulled from the Haiti branch to Prod by Fran (Volunteers welcomed to take over!) * Sign-off for this to come from the group: ''tbc'' * A careful data migration plan is made * Backup * Disable system crontab * {{{vim /etc/crontab}}} * Website put into Maintenance Mode * {{{cd /home/haiti ; ./maintenance.on}}} * {{{cd /home/haiti/web2py ; python web2py.py -S prod -M -N}}} {{{ db.export_to_csv_file(open('db.csv','wb')) Ctrl+D }}} * DataMigration * {{{models/00_db.py}}} * {{{migrate = True}}} * {{{cd /home/haiti/web2py ; python web2py.py -S prod -M -N}}} {{{ Ctrl+D }}} * Restore Service * Re-enable Website * {{{cd /home/haiti ; ./maintenance.off}}} * Re-enable system crontab * {{{vim /etc/crontab}}} * BluePrintSynchronisation === Technical Details === ==== Production ==== * haiti.sahanapy.org VM: 212.23.5.4 * /home/haiti/web2py/applications/prod * /etc/apache2/sites-enabled/prod * Sqlite * Web2Py r1544 * Sahana Haiti r547 * Customisations: * models/00_db.py * migrate = False * models/00_settings.py * auth.settings.registration_requires_verification = True * auth.settings.registration_requires_approval = True * views/ext.html {{{ }}} * views/sahana_scripts_min.html {{{ }}} ==== UAT ==== * logistics.sahanapy.org VM: 212.23.5.5 * /home/haiti-test/web2py/applications/test * /etc/apache2/sites-enabled/haiti-test * [wiki:InstallationGuidelinesMySQL MySQL] ''hopefully'' * Web2Py r1544 * Sahana Haiti r547 * Customisations: * models/00_db.py * migrate = False * db = DAL('mysql://haititest:password@localhost/haititest', pool_size=10) * models/00_settings.py * S3_PUBLIC_URL = 'http://haiti-test.sahanafoundation.org' * auth.settings.registration_requires_verification = True * auth.settings.registration_requires_approval = True ==== Dev ==== * logistics.sahanapy.org VM: 212.23.5.5 * /home/haiti-dev/web2py/applications/dev * /etc/apache2/sites-enabled/haiti-dev * [wiki:InstallationGuidelinesMySQL MySQL] ''hopefully'' * Web2Py r1544 * Sahana Haiti r547 * Customisations: * models/00_db.py * migrate = False * db = DAL('mysql://haitidev:password@localhost/haitidev', pool_size=10) * models/00_settings.py * S3_PUBLIC_URL = 'http://haiti-dev.sahanafoundation.org' * auth.settings.registration_requires_verification = True * auth.settings.registration_requires_approval = True Note that UAT & Dev have different Web2Py instances so that: * We can trial different Web2Py versions on Dev * Crontab can be separately enabled/disabled * Sessions are not common between instances ---- [wiki:Haiti]