Re: Schema version control

From: Bill Moran <wmoran(at)potentialtech(dot)com>
To: Thomas Kellerer <spam_eater(at)gmx(dot)net>
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: Schema version control
Date: 2011-02-10 23:37:31
Message-ID: 20110210183731.921e9344.wmoran@potentialtech.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

In response to Thomas Kellerer <spam_eater(at)gmx(dot)net>:

> Bill Moran wrote on 10.02.2011 23:59:
> > The overview:
> > You store your schema and data as XML (this is easy to migrate to, because
> > it includes a tool that makes the XML from a live database)
> > Keep your XML schema files in some RCS.
> > When it's time for a new deployment, you run the dbsteward tool against
> > the schema XML and it turns it into DDL and DML.
> > When it's time for an upgrade, you run the dbsteward tool against two
> > schema XML files, and it calculates what has changed and generates the
> > appropriate DDL and DML to upgrade.
>
> This very much sounds like Liquibase. Do you happen to know any differences?

Hrm ... before we started writing dbsteward, we looked around to see
if something already existed and didn't find Liquibase. This is the
first I've heard of it. I'm thinking it was some time in 2008, and
according to their changelog, Liquibase was around at that time. I
wonder how we missed it ...

Anyway ... based on nothing more than a quick scan of their quickstart
page, here are the differences I see:
* Liquibase is dependent on you creating "changesets". I'm sure this
works, but we took a different approach with dbsteward. dbsteward
expects you to maintain XML files that represent the entire database,
then dbsteward does the work of figuring out what changed. Our
opinion was that svn already does the work of tracking changes, why
reinvent the wheel.
* Looks like liquibase requires you to talk to the database to push
the changes? dbsteward outputs a DDL/DML file that you can push
in whatever way is best. This is important to us because we use
Slony, and DDL changes have to be submitted through EXECUTE SCRIPT()
* dbsteward has built-in Slony support (i.e. it will make slony configs
as well as slony upgrade scripts in addition to DDL/DML)
* Does liquibase support UDFs? dbsteward does.
* liquibase has a lot more supported platforms at this time. dbsteward
only supports PostgreSQL and MSSQL (because that's all that we needed)
but I expect that other support will come quickly once we release it.
* Does liquibase support things like multi-column indexes and multi-
column primary keys? dbsteward does.

I don't think I should go on and on, as I could ask a lot of questions
about what liquibase does, and I simply don't have the time right now
to research it, or ask all those question ;)

Anyway ... sorry for the teaser on this, but we're trying to get through
all the hoops the company is requiring us to do to release it, and we
think we're on track to be ready by PGCon, so there'll be a website up
as soon as we can get it.

--
Bill Moran
http://www.potentialtech.com
http://people.collaborativefusion.com/~wmoran/

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Bill Moran 2011-02-10 23:44:36 Re: Schema version control
Previous Message Rob Sargent 2011-02-10 23:18:35 Re: Schema version control