17. Frequent changes from dev -> QA
dev qa staging prod
run statements from
update QA with figure out last update
release.2.0.0.sql since
freshest PHP code ran from release.2.0.sql
last DB updates
21. dev1
(new stuff)
dev2 qa1 staging prod
(new stuff) (new stuff)
dev3 qa2
(maintenance) (maintenance)
22. devs making DB changes
dev1 dev2
run statements from
update devX with figure out last update
release.2.0.0.sql since
freshest PHP code ran from release.2.0.sql
last DB updates
23. dev1 writes new code
database YES dev1 sends e-mail to dev2 with
dev1 commits code
changes? instructions for the DB change
NO
dev2 NO
dev2: svn up to get
checks dev2: svn up
new code
email?
YES
dev2 reads
instructions
dev2
dev2 has new YES follows NO dev2 environment is
instructions
code correctly? broken
EPIC FAIL
27. dev1 writes new code
database YES encapsulate DB
changes? change in a delta
NO
dev1 commits code
dev2: svn up to get run script to check for new YES run script to parse and
new code new deltas deltas? apply new deltas
NO
dev2 has new
code
36. encapsulate DB changes (DDL + DML) in a delta
(e.g. delta7.xml)
make stored procedure changes
reference stored procedure changes in the delta
make PHP changes
commit PHP changes, stored procedure
changes and the new delta7.xml
49. create new deltas directory parallel to trunk and
branches
in trunk or branch you’re working in:
svn propedit svn:externals .
edit file that opens, add:
deltas http://svn.example.com/myapp/deltas
save and exit
svn up
svn commit