fabfile.py automation for repeating maintenance tasks ===================================================== In our company we have automated a lot of project life cycle repeating actions. Most of them are straightforward & easy to use. ### fab up In most of projects we implement get\_db and reinst\_db scripts. First one downloads the most recent copy of the production database, 2nd command installs it. Typically the end user-developer needs to run this to get his project fully updated: hg pull -uv fab get_db reinst_db depup patch And usually in most of projects all this gets combined in a single command: fab up which implements the following: - **hgup** - (hg pull —update) - update to most recent source code - **get\_db** - download latest production database - **reinst\_db** - drop & reinstall current database from latest backup made - **depup** ~~update external source dependencies ~~ **patch** - apply migration patches to the project And so Fabric abstracts it on a higher level, and makes developer life easier. ### fab produp Additionally on every production server the ‘produp’ procedure gets implemented. It is very similar to ‘up’ procedure explained above, but it also includes step to reload / restart production service software and update required files (for example static files). And so, fab produp consists from: * hgup \* depup \* patch \* prod\_reload \* ./manage.py collectstatic