On 02/10/2011 02:38 PM, Royce Ausburn wrote:
> Hi all,
> 
> My company is having trouble managing how we upgrade schema changes across 
> many versions of our software.  I imagine this is a common problem and 
> there're probably some neat solutions that we don't know about.  
> 
> For the last 10 years we have been writing bash shell scripts essentially 
> numbered in order db0001, db0002, db0003.... The number represents the schema 
> version which is recorded in the database and updated by the shell scripts.  
> We have a template that provides all the functionality we need, we just copy 
> the script and fill in the blanks.  The schema upgrade scripts are committed 
> to svn along with the software changes, and we have a process when installing 
> the software at a site that runs the scripts on the DB in order before 
> starting up the new version of the software.
> 
> This has worked really well so far.  But  we've effectively only had one 
> version of the software in development at any time.  We're now in the habit 
> of branching the software to form releases to promote stability when making 
> large changes.  The idea is that only really important changes are merged in 
> to the releases.  This introduces a bit of a problem when some change needs 
> to be merged from one release to another.  The typical problem is that we 
> might have two versions of the software 10.0 at schema version 10057 and 11.0 
> at 11023 and we need to merge an important bug fix from schema 11023 in to 
> 10.0.  The issue is that 11023 might depend upon changes introduced in the 
> schema versions before it.  Or 11023 might introduce changes that cause later 
> scripts to break (11000 - 11023) when upgrading from 10.0 to 11.0.
> 
> One potential solution is to require that schema changes are never merged in 
> to a release, but of course sometimes business requires we do =(
> 
> I'm really interested to hear how you guys manage schema upgrades in the face 
> of branches and upgrading from many different versions of the database.
> 
> I've been reading 
> http://pyrseas.wordpress.com/2011/02/07/version-control-part-2-sql-databases/ 
> but I have a feeling that this blog post won't address branches.
> 
> Cheers!
> 
> --Royce
> 
> 

Don't the bash scripts get checked in to .../perforce/cvs/svn/git/...?
Aren't they part of the resources of the project(s)?


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