-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 15/02/16 01:01, Luca Ferrari wrote:
> While I'm pretty sure a simple sheel script that will execute,
> file per file, the alter table (within a transaction) will do the
> job I'm wondering if there's a better approach or a more automated
> one.

The way I (and many others) do it is to use the user_version.  It is
an integer that starts out as zero, and can be read or written with
pragma user_version.  Startup code then looks like this:

if user_version()==0 {
        BEGIN;
        CREATE TABLE ....;
        CREATE INDEX ....;
        pragma user_version=1;
        COMMIT;
}
if user_version()==1 {
        BEGIN;
        CREATE TABLE ....;
        ALTER TABLE .....;
        pragma user_version=2;
        COMMIT;
}
if user_version()==2 {
        BEGIN;
        DELETE INDEX ....;
        CREATE TABLE ....;
        pragma user_version=3;
        COMMIT;
}

This way the schema will always end up as desired, even if the program
terminated while updating a schema.  Even a restored backup will
adjust nicely.

Roger
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iEYEARECAAYFAlbDi78ACgkQmOOfHg372QSgPACgxIpKdSlzUVznymQThe9aqqJM
pGkAnj99zXJbzO1Tm6/uyuIgXCt5jq42
=Y/zw
-----END PGP SIGNATURE-----

Reply via email to