diff --git a/keystone/common/sql/migrate_repo/versions/002_mysql_downgrade.sql b/keystone/common/sql/migrate_repo/versions/002_mysql_downgrade.sql deleted file mode 100644 index f1337acdf3..0000000000 --- a/keystone/common/sql/migrate_repo/versions/002_mysql_downgrade.sql +++ /dev/null @@ -1,3 +0,0 @@ -alter table token drop id; -alter table token change id_hash id varchar(64); - diff --git a/keystone/common/sql/migrate_repo/versions/002_mysql_upgrade.sql b/keystone/common/sql/migrate_repo/versions/002_mysql_upgrade.sql deleted file mode 100644 index 1cb8d74726..0000000000 --- a/keystone/common/sql/migrate_repo/versions/002_mysql_upgrade.sql +++ /dev/null @@ -1,2 +0,0 @@ -alter table token change id id_hash varchar(64); -alter table token add id varchar(2048); diff --git a/keystone/common/sql/migrate_repo/versions/002_token_id_hash.py b/keystone/common/sql/migrate_repo/versions/002_token_id_hash.py new file mode 100644 index 0000000000..4d38b525d8 --- /dev/null +++ b/keystone/common/sql/migrate_repo/versions/002_token_id_hash.py @@ -0,0 +1,43 @@ +# vim: tabstop=4 shiftwidth=4 softtabstop=4 + +# Copyright (c) 2012 Red Hat, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# 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 sqlalchemy import Column, MetaData, String, Table + + +def upgrade(migrate_engine): + meta = MetaData() + meta.bind = migrate_engine + token = Table('token', meta, autoload=True) + old_id_col = token.c.id + old_id_col.alter(name='id_hash') + # Note: We obtain a new metadata reference to avoid + # sqlalchemy.exc.ArgumentError: + # Trying to redefine primary-key column 'id' as a non-primary-key... + meta = MetaData() + meta.bind = migrate_engine + token = Table('token', meta, autoload=True) + new_id = Column("id", String(2048)) + token.create_column(new_id) + + +def downgrade(migrate_engine): + meta = MetaData() + meta.bind = migrate_engine + token = Table('token', meta, autoload=True) + token.drop_column('id') + token = Table('token', meta, autoload=True) + id_col = token.c.id_hash + id_col.alter(name='id')