diff --git a/heat/db/sqlalchemy/migrate_repo/versions/050_stack_tags.py b/heat/db/sqlalchemy/migrate_repo/versions/050_stack_tags.py new file mode 100644 index 0000000000..0c21d2c912 --- /dev/null +++ b/heat/db/sqlalchemy/migrate_repo/versions/050_stack_tags.py @@ -0,0 +1,31 @@ +# +# 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. + +import sqlalchemy + +from heat.db.sqlalchemy import types as heat_db_types + + +def upgrade(migrate_engine): + meta = sqlalchemy.MetaData(bind=migrate_engine) + + stack = sqlalchemy.Table('stack', meta, autoload=True) + tags = sqlalchemy.Column('tags', heat_db_types.Json) + tags.create(stack) + + +def downgrade(migrate_engine): + meta = sqlalchemy.MetaData(bind=migrate_engine) + + stack = sqlalchemy.Table('stack', meta, autoload=True) + stack.c.tags.drop() diff --git a/heat/db/sqlalchemy/models.py b/heat/db/sqlalchemy/models.py index 877c54a1b9..ca51d7d1c0 100644 --- a/heat/db/sqlalchemy/models.py +++ b/heat/db/sqlalchemy/models.py @@ -135,6 +135,7 @@ class Stack(BASE, HeatBase, SoftDelete, StateAware): nullable=True) backup = sqlalchemy.Column('backup', sqlalchemy.Boolean) nested_depth = sqlalchemy.Column('nested_depth', sqlalchemy.Integer) + tags = sqlalchemy.Column('tags', types.Json) # Override timestamp column to store the correct value: it should be the # time the create/update call was issued, not the time the DB entry is