diff options
author | Jenkins <jenkins@review.openstack.org> | 2012-02-07 16:33:10 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2012-02-07 16:33:10 +0000 |
commit | a3febb16e571890911622deb12762bb46e8dfbee (patch) | |
tree | 642edb53dfbe5c3f1fa49ef66d51f6621a7f5871 | |
parent | de23221007cc687533c86f0de217c7d0b6fb523f (diff) | |
parent | 6dbbd26cb193d659b517e440f19737bb899af917 (diff) | |
download | nova-a3febb16e571890911622deb12762bb46e8dfbee.tar.gz nova-a3febb16e571890911622deb12762bb46e8dfbee.tar.xz nova-a3febb16e571890911622deb12762bb46e8dfbee.zip |
Merge "Update migration to work when data already exists"
-rw-r--r-- | nova/db/sqlalchemy/migrate_repo/versions/075_convert_bw_usage_to_store_network_id.py | 36 |
1 files changed, 25 insertions, 11 deletions
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/075_convert_bw_usage_to_store_network_id.py b/nova/db/sqlalchemy/migrate_repo/versions/075_convert_bw_usage_to_store_network_id.py index e75d6a6d9..c7a40b0ff 100644 --- a/nova/db/sqlalchemy/migrate_repo/versions/075_convert_bw_usage_to_store_network_id.py +++ b/nova/db/sqlalchemy/migrate_repo/versions/075_convert_bw_usage_to_store_network_id.py @@ -46,12 +46,19 @@ def upgrade(migrate_engine): networks = Table('networks', meta, autoload=True) mac_column = Column('mac', String(255)) - bw_usage_cache.create_column(mac_column) + try: + bw_usage_cache.create_column(mac_column) + except Exception: + # NOTE(jkoelker) passing here since this migration was broken + # at one point + pass bw_usage_cache.update()\ .values(mac=select([vifs.c.address])\ - .where(and_(networks.c.label == bw_usage_cache.c.network_label, - networks.c.id == vifs.c.network_id))\ + .where(and_( + networks.c.label == bw_usage_cache.c.network_label, + networks.c.id == vifs.c.network_id, + bw_usage_cache.c.instance_id == vifs.c.instance_id))\ .as_scalar()).execute() bw_usage_cache.c.network_label.drop() @@ -61,7 +68,7 @@ def downgrade(migrate_engine): meta.bind = migrate_engine bw_usage_cache = Table('bw_usage_cache', meta, Column('id', Integer, primary_key=True), - Column('network_uuid', String(36)), + Column('mac', String(255)), Column('instance_id', Integer, nullable=False), Column('start_period', DateTime, nullable=False), Column('last_refreshed', DateTime), @@ -81,10 +88,17 @@ def downgrade(migrate_engine): bw_usage_cache.create_column(network_label_column) - bw_usage_cache.update()\ - .values(network_label=select([network.c.label])\ - .where(and_(network.c.id == vifs.c.network_id, - vifs.c.address == bw_usage_cache.c.mac))\ - .as_scalar()).execute() - - bw_usage_cache.c.network_uuid.drop() + try: + bw_usage_cache.update()\ + .values(network_label=select([network.c.label])\ + .where(and_( + network.c.id == vifs.c.network_id, + vifs.c.address == bw_usage_cache.c.mac, + bw_usage_cache.c.instance_id == vifs.c.instance_id))\ + .as_scalar()).execute() + except Exception: + # NOTE(jkoelker) passing here since this migration was broken + # at one point + pass + + bw_usage_cache.c.mac.drop() |