From bc531229be7919fb74f831d0630c3bb6d086bbcb Mon Sep 17 00:00:00 2001 From: wangxiyuan Date: Mon, 3 Dec 2018 15:32:31 +0800 Subject: [PATCH] [SQLite] Ensure change is addressed for limit table For Sqlite, the "registered_limit" and "limit" tables were dropped and recreated in 047 migration script[1]. After 047, we should make sure the change to these two tables has been addressed. This patch updated 048 expand script to ensure the change is adopted indeed. [1]: Ibb408758466ff367f57bafbd4b8c9213499f8dc3 Change-Id: I3989434f661de2c5411b7fad528af1ee4e5ca3fe --- ...and_add_registered_limit_id_column_for_limit.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/keystone/common/sql/expand_repo/versions/048_expand_add_registered_limit_id_column_for_limit.py b/keystone/common/sql/expand_repo/versions/048_expand_add_registered_limit_id_column_for_limit.py index f67d42cefe..05ee9c8269 100644 --- a/keystone/common/sql/expand_repo/versions/048_expand_add_registered_limit_id_column_for_limit.py +++ b/keystone/common/sql/expand_repo/versions/048_expand_add_registered_limit_id_column_for_limit.py @@ -24,3 +24,17 @@ def upgrade(migrate_engine): 'registered_limit_id', sql.String(64), sql.ForeignKey(registered_limit_table.c.id)) limit_table.create_column(registered_limit_id) + + if migrate_engine.name == 'sqlite': + meta = sql.MetaData() + meta.bind = migrate_engine + # "limit_new" is the table created in 047 expand script for SQLite + # case. + try: + limit_table_new = sql.Table('limit_new', meta, autoload=True) + registered_limit_id = sql.Column( + 'registered_limit_id', sql.String(64), + sql.ForeignKey(registered_limit_table.c.id)) + limit_table_new.create_column(registered_limit_id) + except sql.exc.NoSuchTableError: + pass