diff options
author | Hengqing Hu <hudayou@hotmail.com> | 2012-02-08 00:02:54 +0800 |
---|---|---|
committer | Hengqing Hu <hudayou@hotmail.com> | 2012-02-17 18:30:09 +0800 |
commit | 8e825c4024f9feb18ca5e2416484ef4096c3bb06 (patch) | |
tree | b977c03dd556d504bc8cc7396a262caa891a5bab /run_tests.sh | |
parent | 5073c4506eb0fee2c732509ace2729c3aca05769 (diff) | |
download | nova-8e825c4024f9feb18ca5e2416484ef4096c3bb06.tar.gz |
Make database downgrade works
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
Diffstat (limited to 'run_tests.sh')
-rwxr-xr-x | run_tests.sh | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/run_tests.sh b/run_tests.sh index 133b84515e..9964802cf3 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -34,6 +34,8 @@ function process_option { -s|--no-site-packages) no_site_packages=1;; -r|--recreate-db) recreate_db=1;; -n|--no-recreate-db) recreate_db=0;; + -m|--patch-migrate) patch_migrate=1;; + -w|--no-patch-migrate) patch_migrate=0;; -f|--force) force=1;; -p|--pep8) just_pep8=1;; -P|--no-pep8) no_pep8=1;; @@ -59,6 +61,7 @@ no_pep8=0 just_hacking=0 coverage=0 recreate_db=1 +patch_migrate=1 for arg in "$@"; do process_option $arg @@ -185,6 +188,16 @@ if [ $recreate_db -eq 1 ]; then rm -f tests.sqlite fi +# Workaround for sqlalchemy-migrate issue 72 +# see: http://code.google.com/p/sqlalchemy-migrate/issues/detail?id=72 +if [ $patch_migrate -eq 1 ]; then + pyver=python`python -c 'import sys; print(".".join(map(str, sys.version_info[:2])))'` + target=${venv}/lib/${pyver}/site-packages/migrate/versioning/util/__init__.py + if [ -f $target ]; then + sed -i -e '/^\s\+finally:$/ {N; /^\(\s\+finally:\n\s\+if isinstance(engine, Engine)\):$/ {s//\1 and engine is not url:/}}' $target + fi +fi + run_tests # NOTE(sirp): we only want to run pep8 when we're running the full-test suite, |