Skip to content

Commit

Permalink
Make database downgrade works
Browse files Browse the repository at this point in the history
Fixes bug #854905

Use sqlalchemy reflection whenever possible:
    http://sqlalchemy-migrate.readthedocs.org/en/latest/versioning.html

Work around sqlalchemy-migrate sqlite 'bool column not deletable' issue:
    http://code.google.com/p/sqlalchemy-migrate/issues/detail?id=143
    Add following sql scripts for sqlite:
        002_sqlite_downgrade.sql
        015_sqlite_downgrade.sql
        033_sqlite_downgrade.sql
        050_sqlite_downgrade.sql
        068_sqlite_downgrade.sql

Work around sqlalchemy-migrate sqlite 'table with foreign key column not
deletable' issue:
    http://code.google.com/p/sqlalchemy-migrate/issues/detail?id=94
    Add following sql scripts for sqlite:
        003_sqlite_downgrade.sql
        006_sqlite_downgrade.sql
        007_sqlite_downgrade.sql
        012_sqlite_upgrade.sql
        013_sqlite_downgrade.sql
        020_sqlite_downgrade.sql
        030_sqlite_downgrade.sql
        038_sqlite_downgrade.sql
        042_sqlite_downgrade.sql
        053_sqlite_downgrade.sql
        067_sqlite_downgrade.sql

Work around sqlalchemy-migrate 'migrate drops engine reference' issue:
    http://code.google.com/p/sqlalchemy-migrate/issues/detail?id=72

Add following sql scripts for long primary key to work with utf-8
mysql table:
    072_mysql_upgrade.sql

Add following sql scripts for postgresql:
    002_postgresql_downgrade.sql

Add snake walk test cases for database migration based on glance migration
test.

Change-Id: Ib454ecb4662bbf47736c1b12d9a4f969f180ceb6
  • Loading branch information
hudayou committed Feb 17, 2012
1 parent 5073c45 commit 8e825c4
Show file tree
Hide file tree
Showing 105 changed files with 5,134 additions and 2,293 deletions.
1,059 changes: 576 additions & 483 deletions nova/db/sqlalchemy/migrate_repo/versions/001_austin.py

Large diffs are not rendered by default.

364 changes: 184 additions & 180 deletions nova/db/sqlalchemy/migrate_repo/versions/002_bexar.py

Large diffs are not rendered by default.

@@ -0,0 +1,20 @@
BEGIN;

DROP TABLE certificates;
DROP TABLE consoles;
DROP TABLE console_pools;
DROP TABLE instance_actions;
DROP TABLE iscsi_targets;

ALTER TABLE auth_tokens ADD COLUMN user_id_backup INTEGER;
UPDATE auth_tokens SET user_id_backup = CAST(user_id AS INTEGER);
ALTER TABLE auth_tokens DROP COLUMN user_id;
ALTER TABLE auth_tokens RENAME COLUMN user_id_backup TO user_id;

ALTER TABLE instances DROP COLUMN availability_zone;
ALTER TABLE instances DROP COLUMN locked;
ALTER TABLE networks DROP COLUMN cidr_v6;
ALTER TABLE networks DROP COLUMN ra_server;
ALTER TABLE services DROP COLUMN availability_zone;

COMMIT;

0 comments on commit 8e825c4

Please sign in to comment.