[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]