From a73c4eac9453f0ed09709962e486ef93a1f19922 Mon Sep 17 00:00:00 2001 From: Visnusaran Murugan Date: Mon, 13 Oct 2014 13:58:34 +0530 Subject: [PATCH] sqlalchemy migration not to import model sqlalchemy migration scripts should depend on reflections rather than import model.py Model denotes the latest state and will fail if used in migration scripts Change-Id: I4fcc3d06b96fab07ed47d5cc1fc4040395a60be8 Closes-Bug: #1380479 --- .../migrate_repo/versions/037_migrate_hot_template.py | 7 +++++-- .../versions/041_migrate_hot_template_resources.py | 7 +++++-- .../migrate_repo/versions/043_migrate_template_versions.py | 7 +++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/heat/db/sqlalchemy/migrate_repo/versions/037_migrate_hot_template.py b/heat/db/sqlalchemy/migrate_repo/versions/037_migrate_hot_template.py index 5b3f26ae2..d2cb00321 100644 --- a/heat/db/sqlalchemy/migrate_repo/versions/037_migrate_hot_template.py +++ b/heat/db/sqlalchemy/migrate_repo/versions/037_migrate_hot_template.py @@ -15,10 +15,10 @@ import copy from migrate.versioning import util as migrate_util import six +import sqlalchemy from sqlalchemy.orm import sessionmaker from heat.common.i18n import _ -from heat.db.sqlalchemy import models from heat.engine.hot.parameters import HOTParamSchema @@ -26,7 +26,10 @@ def upgrade(migrate_engine): Session = sessionmaker(bind=migrate_engine) session = Session() - raw_templates = session.query(models.RawTemplate).all() + meta = sqlalchemy.MetaData(bind=migrate_engine) + + templ_table = sqlalchemy.Table('raw_template', meta, autoload=True) + raw_templates = templ_table.select().execute() for raw_template in raw_templates: if ('heat_template_version' in raw_template.template diff --git a/heat/db/sqlalchemy/migrate_repo/versions/041_migrate_hot_template_resources.py b/heat/db/sqlalchemy/migrate_repo/versions/041_migrate_hot_template_resources.py index 93417af50..fe7363a4b 100644 --- a/heat/db/sqlalchemy/migrate_repo/versions/041_migrate_hot_template_resources.py +++ b/heat/db/sqlalchemy/migrate_repo/versions/041_migrate_hot_template_resources.py @@ -14,17 +14,20 @@ import copy from migrate.versioning import util as migrate_util import six +import sqlalchemy from sqlalchemy.orm import sessionmaker from heat.common.i18n import _ -from heat.db.sqlalchemy import models def upgrade(migrate_engine): Session = sessionmaker(bind=migrate_engine) session = Session() - raw_templates = session.query(models.RawTemplate).all() + meta = sqlalchemy.MetaData(bind=migrate_engine) + + templ_table = sqlalchemy.Table('raw_template', meta, autoload=True) + raw_templates = templ_table.select().execute() CFN_TO_HOT_RESOURCE_ATTRS = {'Type': 'type', 'Properties': 'properties', diff --git a/heat/db/sqlalchemy/migrate_repo/versions/043_migrate_template_versions.py b/heat/db/sqlalchemy/migrate_repo/versions/043_migrate_template_versions.py index 5fa7f730d..07db32f59 100644 --- a/heat/db/sqlalchemy/migrate_repo/versions/043_migrate_template_versions.py +++ b/heat/db/sqlalchemy/migrate_repo/versions/043_migrate_template_versions.py @@ -14,17 +14,20 @@ import copy import time from migrate.versioning import util as migrate_util +import sqlalchemy from sqlalchemy.orm import sessionmaker from heat.common.i18n import _ -from heat.db.sqlalchemy import models def upgrade(migrate_engine): Session = sessionmaker(bind=migrate_engine) session = Session() - raw_templates = session.query(models.RawTemplate).all() + meta = sqlalchemy.MetaData(bind=migrate_engine) + + templ_table = sqlalchemy.Table('raw_template', meta, autoload=True) + raw_templates = templ_table.select().execute() # NOTE (sdake) 2014-04-24 is the date of the Icehouse release. It is # possible that folks could continue to make errors in their templates