From 6ce51e36bd831ad9ec357c8145e33ca8885430ae Mon Sep 17 00:00:00 2001 From: Thomas Herve Date: Tue, 7 Aug 2018 16:56:40 +0200 Subject: [PATCH] Update workbook namespace to '' on migration Namespaces for workbooks have been recently introduced by I2c66b3961915f0f35a9c468eb6dd0c0c70995234. It adds the new column but leave the default as NULL in the database, and doesn't update the old workbooks. This makes old workbooks undeletable. This patch adds a new migration updating the workbooks. Change-Id: I91d272d65b7be29303372f93c0811c484795efbb Closes-Bug: #1785833 --- .../versions/029_workbook_empty_namespace.py | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 mistral/db/sqlalchemy/migration/alembic_migrations/versions/029_workbook_empty_namespace.py diff --git a/mistral/db/sqlalchemy/migration/alembic_migrations/versions/029_workbook_empty_namespace.py b/mistral/db/sqlalchemy/migration/alembic_migrations/versions/029_workbook_empty_namespace.py new file mode 100644 index 000000000..7eeb2674e --- /dev/null +++ b/mistral/db/sqlalchemy/migration/alembic_migrations/versions/029_workbook_empty_namespace.py @@ -0,0 +1,41 @@ +# Copyright 2018 OpenStack Foundation. +# +# 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. + +"""workbook_empty_namespace + +Revision ID: 029 +Revises: 028 +Create Date: 2018-08-08 10:30:00.727769 + +""" + +# revision identifiers, used by Alembic. +revision = '029' +down_revision = '028' + +from alembic import op +import sqlalchemy as sa +from sqlalchemy.sql import table, column + + +def upgrade(): + wb_def = table('workbooks_v2', column('namespace')) + session = sa.orm.Session(bind=op.get_bind()) + with session.begin(subtransactions=True): + session.execute( + wb_def.update().values(namespace='').where( + wb_def.c.namespace == None)) # noqa + + session.commit()