diff options
| author | Jenkins <jenkins@review.openstack.org> | 2012-10-25 09:43:27 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2012-10-25 09:43:27 +0000 |
| commit | 44b3e4d610e63576540220ae3b52a4eed5dcd57f (patch) | |
| tree | fe8d570a7473b02aacdca47edf300444c3622eb7 | |
| parent | 8417af68d94ee2c0bf433a99bec1447df9c61025 (diff) | |
| parent | 5f3c2f9b8ea24b2a0e1909dbeac4dc47f2410d7a (diff) | |
| download | nova-44b3e4d610e63576540220ae3b52a4eed5dcd57f.tar.gz nova-44b3e4d610e63576540220ae3b52a4eed5dcd57f.tar.xz nova-44b3e4d610e63576540220ae3b52a4eed5dcd57f.zip | |
Merge "More specific exception handling in migration 091."
| -rw-r--r-- | nova/db/sqlalchemy/migrate_repo/versions/091_convert_volume_ids_to_uuid.py | 43 |
1 files changed, 15 insertions, 28 deletions
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/091_convert_volume_ids_to_uuid.py b/nova/db/sqlalchemy/migrate_repo/versions/091_convert_volume_ids_to_uuid.py index 3938107da..dadf15d30 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/091_convert_volume_ids_to_uuid.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/091_convert_volume_ids_to_uuid.py @@ -14,8 +14,7 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. - -from migrate import ForeignKeyConstraint +from migrate import ForeignKeyConstraint, NotSupportedError from sqlalchemy import MetaData, select, Table from nova.openstack.common import log as logging @@ -54,11 +53,11 @@ def upgrade(migrate_engine): name=fkey_name) try: fkey.drop() - except Exception: - if migrate_engine.url.get_dialect().name.startswith('sqlite'): - pass - else: - raise + except NotSupportedError: + # NOTE(sirp): sqlite doesn't support ALTER TABLE DROP + # CONSTRAINT and sqlalchemy-migrate doesn't yet have a + # work-around using temp tables. + pass volume_list = list(volumes.select().execute()) for v in volume_list: @@ -111,14 +110,8 @@ def upgrade(migrate_engine): if fkeys: fkey = ForeignKeyConstraint(columns=[column], refcolumns=[volumes.c.id]) - try: - fkey.create() - LOG.info('Created foreign key %s' % fkey_name) - except Exception: - if migrate_engine.url.get_dialect().name.startswith('sqlite'): - pass - else: - raise + fkey.create() + LOG.info('Created foreign key %s' % fkey_name) def downgrade(migrate_engine): @@ -151,11 +144,11 @@ def downgrade(migrate_engine): name=fkey_name) try: fkey.drop() - except Exception: - if migrate_engine.url.get_dialect().name.startswith('sqlite'): - pass - else: - raise + except NotSupportedError: + # NOTE(sirp): sqlite doesn't support ALTER TABLE DROP + # CONSTRAINT and sqlalchemy-migrate doesn't yet have a + # work-around using temp tables. + pass volume_list = list(volumes.select().execute()) for v in volume_list: @@ -208,11 +201,5 @@ def downgrade(migrate_engine): if fkeys: fkey = ForeignKeyConstraint(columns=[column], refcolumns=[volumes.c.id]) - try: - fkey.create() - LOG.info('Created foreign key %s' % fkey_name) - except Exception: - if migrate_engine.url.get_dialect().name.startswith('sqlite'): - pass - else: - raise + fkey.create() + LOG.info('Created foreign key %s' % fkey_name) |
