Subject RE: [firebird-support] Looking for some suggestions...Vertical market apps
Author Alan McDonald
> I would like to know, from other vertical market developers who are using
> Firebird, how they are handling changes in the SQL Schemas when releasing
> updates of their software to their customers? Are there any
> tools that make
> this process easy to do, or do you have to write this yourself?
> Thanks in advance for any advice/assistance.
> Regards,
> Myles

My application and DBs share a version number. (app gets an additional build
and minor revision, db gets a major revision. When a schema change is
required by the app, both app and db get a major revision increment.
At this stage a DB comare is run between the dev copy (source) and the prod
copy (target). An SQL script is the end product here which is manually
checked and inserted into a script component of the app. Each time the app
runs it checks the major app revision with the db app revision. If db>app,
the app terminates with appropriate message to upgrade the app. If db<app,
then the app runs the script, disconnects and reconnects.
One weak spot (if you like) is during an upgrade install. This has to be
done on one machine with noone else connected. (I stipulate this). This app
upgrade is then run, it does it's work, and can remain running while all
other desktops are upgraded. Once this first one is done, the other desktops
won't run until they are upgraded. This makes for good protection.