From e99fce20decec5424eab08f9a2806ff9e2f900f4 Mon Sep 17 00:00:00 2001 From: Kamil Gabryjelski Date: Mon, 28 Nov 2022 19:39:34 +0100 Subject: [PATCH 1/2] chore: Add a migration that removes filter_bar_orientation from dashboard's json_metadata --- ...1d9b25135_remove_filter_bar_orientation.py | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 superset/migrations/versions/2022-11-28_17-51_4ce1d9b25135_remove_filter_bar_orientation.py diff --git a/superset/migrations/versions/2022-11-28_17-51_4ce1d9b25135_remove_filter_bar_orientation.py b/superset/migrations/versions/2022-11-28_17-51_4ce1d9b25135_remove_filter_bar_orientation.py new file mode 100644 index 0000000000000..4f69bf8587e8b --- /dev/null +++ b/superset/migrations/versions/2022-11-28_17-51_4ce1d9b25135_remove_filter_bar_orientation.py @@ -0,0 +1,67 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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. +"""remove_filter_bar_orientation + +Revision ID: 4ce1d9b25135 +Revises: deb4c9d4a4ef +Create Date: 2022-11-28 17:51:08.954439 + +""" + +# revision identifiers, used by Alembic. +revision = "4ce1d9b25135" +down_revision = "deb4c9d4a4ef" + +import json + +import sqlalchemy as sa +from alembic import op +from sqlalchemy.ext.declarative import declarative_base + +from superset import db + +Base = declarative_base() + + +class Dashboard(Base): + __tablename__ = "dashboards" + id = sa.Column(sa.Integer, primary_key=True) + json_metadata = sa.Column(sa.Text) + + +def upgrade(): + pass + + +def downgrade(): + bind = op.get_bind() + session = db.Session(bind=bind) + + dashboards = ( + session.query(Dashboard) + .filter(Dashboard.json_metadata.like('%"filter_bar_orientation"%')) + .all() + ) + for dashboard in dashboards: + try: + json_meta = json.loads(dashboard.json_metadata) + json_meta.pop("filter_bar_orientation", None) + dashboard.json_metadata = json.dumps(json_meta) + except: + pass + session.commit() + session.close() From d99ad27b7e69a55d7aee677c97c962d1afdc1d4a Mon Sep 17 00:00:00 2001 From: Kamil Gabryjelski Date: Tue, 29 Nov 2022 13:23:49 +0100 Subject: [PATCH 2/2] Remove try/catch --- ...28_17-51_4ce1d9b25135_remove_filter_bar_orientation.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/superset/migrations/versions/2022-11-28_17-51_4ce1d9b25135_remove_filter_bar_orientation.py b/superset/migrations/versions/2022-11-28_17-51_4ce1d9b25135_remove_filter_bar_orientation.py index 4f69bf8587e8b..07ee47b9845c8 100644 --- a/superset/migrations/versions/2022-11-28_17-51_4ce1d9b25135_remove_filter_bar_orientation.py +++ b/superset/migrations/versions/2022-11-28_17-51_4ce1d9b25135_remove_filter_bar_orientation.py @@ -57,11 +57,9 @@ def downgrade(): .all() ) for dashboard in dashboards: - try: - json_meta = json.loads(dashboard.json_metadata) - json_meta.pop("filter_bar_orientation", None) + json_meta = json.loads(dashboard.json_metadata) + filter_bar_orientation = json_meta.pop("filter_bar_orientation", None) + if filter_bar_orientation: dashboard.json_metadata = json.dumps(json_meta) - except: - pass session.commit() session.close()