Re: Question: How do you manage version control?

From: Ralf Schuchardt <rasc(at)gmx(dot)de>
To: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: Question: How do you manage version control?
Date: 2012-06-01 16:23:58
Message-ID: 44373888-683B-44E3-9CC7-E6D18765AF24@gmx.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hello,

am 01.06.2012 um 17:28 schrieb Bryan Montgomery:

> So we've been reviewing our processes and working on improving them. One area we've been lacking is a procedure to version control our database functions, table changes, static data etc.

we use a very basic system since a few years, consisting mainly of shell scripts and sql scripts processed by psql.

> I'm curious how others do it. Ideally, we want it to be part of our release / build process so that we deploy functions.
>
> However, how do you handle dependancies?

The code for every recreatable object (i.e. views, functions, maybe types) is stored in its own file. It includes also a drop statement for these objects and formal comments to declare dependencies between the files. The files are processed with a small script that extracts the dependency declarations and writes a create and drop script for all objects while maintaining the correct order.

> We've also used patch files if we need to modify tables - these are typically written to only run once, ie alter table add column x int. Any thoughts on putting this in to a process so that it can be run mutliple times without any issue?

Our database has a "versions" table, containing the version (and date) of applied patch files. Every patch file checks the current version in the database and throws an exception, when it does not match its expected version.
The directory with the recreatable objects is versioned along the patch files.

Regards
Ralf

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2012-06-01 17:34:39 Re: autovacuum running for a long time on a new table with 1 row
Previous Message Thomas Kellerer 2012-06-01 15:51:35 Re: Question: How do you manage version control?