[OPEN-ILS-DEV] SUGGESTION: Tagging DB schema versions

Mike Rylander mrylander at gmail.com
Thu Aug 21 20:37:26 EDT 2008


On Thu, Aug 21, 2008 at 8:05 PM, Brandon W. Uhlman
<brandon.uhlman at bclibrary.ca> wrote:
> Hi!
>
> As part of trying to track down a problem, I'm wondering if my installed
> software version and the database schema that I'm working on have diverged.
>
> To that end, I'm going through collections of schema upgrade scripts to see
> if new schemata from each of the scripts have been added to my instance. It
> would be a lot easier if we took a page from (say) Ruby on Rails, which
> includes in their 'database migrations' a version tag, which lets me know
> which revision of the database my schema is currently at.
>
> This could take the form of a single table, for example,
> config.db_schema_version, with a single column, version, and a single
> record, with a string representing the current version. In the short term we
> could keep the string for human use, but over the longer term, we could
> automate schema upgrades by watching this value.
>
> Lately, I feel like I've been throwing out lots of ideas that require
> coding, and not submitting lots of code. I hope that will change soon. :-p
>
> Any comments on this idea?

We've tossed this idea around before.  In fact, we've gone as far as
spec'ing out a whole versioning and upgrade plan, but obviously it's
not come to anything.

I think a well-known location in the database to store the schema
version would be great.  The one change I'd make to your plan would be
to store /all/ the versions (that are, in fact, versioned) in that
table, and add a timestamptz column defaulting to now() so you'd know
when each upgrade was applied.

Thanks for bringing it back  up, B.

-- 
Mike Rylander
 | VP, Research and Design
 | Equinox Software, Inc. / The Evergreen Experts
 | phone: 1-877-OPEN-ILS (673-6457)
 | email: miker at esilibrary.com
 | web: http://www.esilibrary.com


More information about the Open-ils-dev mailing list