summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2012-10-25 09:43:27 +0000
committerGerrit Code Review <review@openstack.org>2012-10-25 09:43:27 +0000
commit44b3e4d610e63576540220ae3b52a4eed5dcd57f (patch)
treefe8d570a7473b02aacdca47edf300444c3622eb7
parent8417af68d94ee2c0bf433a99bec1447df9c61025 (diff)
parent5f3c2f9b8ea24b2a0e1909dbeac4dc47f2410d7a (diff)
downloadnova-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.py43
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)