Chris Angelico wrote on 12.04.2012 17:10:
patchlevel = query("select patchlevel from config")
switch (patchlevel)
{
   default: print("Unknown patch level!"); break;
   case 1:
     print("20120216: Adding Foobar columns to Quux")
     query("ALTER TABLE Quux ADD foo smallint not null default 0, ADD
bar varchar")
   case 2:
     ... etc ...
   case 42:
     ...
     // Add new patch levels here
     query("update config set patchlevel=43"); query("commit");
   case 43: break;
}


Every change is thus assigned a number. The current patch level is a
safe no-op; any unrecognized number is a major error. The script is
thus safe to run on any database, and will always bring that database
up to the script's current patch level.

Sounds like you implement something very similar to Liquibase.




--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to