From 2c8867e4e408ecf903e6887667d70c62b4d69c6d Mon Sep 17 00:00:00 2001 From: Jesse Yang Date: Mon, 8 Aug 2022 13:30:46 -0700 Subject: [PATCH] chore(db-migration): ensure query_context is MediumText before viz migration (#20936) --- ...-07_13-00_c747c78868b6_migrating_legacy_treemap.py | 11 +++++++++++ ..._15-16_a39867932713_query_context_to_mediumtext.py | 5 ++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/superset/migrations/versions/2022-07-07_13-00_c747c78868b6_migrating_legacy_treemap.py b/superset/migrations/versions/2022-07-07_13-00_c747c78868b6_migrating_legacy_treemap.py index 99a7250e9e8..18c9acaf576 100644 --- a/superset/migrations/versions/2022-07-07_13-00_c747c78868b6_migrating_legacy_treemap.py +++ b/superset/migrations/versions/2022-07-07_13-00_c747c78868b6_migrating_legacy_treemap.py @@ -21,6 +21,9 @@ Revises: cdcf3d64daf4 Create Date: 2022-06-30 22:04:17.686635 """ +from alembic import op +from sqlalchemy.dialects.mysql.base import MySQLDialect + from superset.migrations.shared.migrate_viz import MigrateTreeMap # revision identifiers, used by Alembic. @@ -29,6 +32,14 @@ down_revision = "cdcf3d64daf4" def upgrade(): + # Ensure `slice.params` and `slice.query_context`` in MySQL is MEDIUMTEXT + # before migration, as the migration will save a duplicate form_data backup + # which may significantly increase the size of these fields. + if isinstance(op.get_bind().dialect, MySQLDialect): + # If the columns are already MEDIUMTEXT, this is a no-op + op.execute("ALTER TABLE slices MODIFY params MEDIUMTEXT") + op.execute("ALTER TABLE slices MODIFY query_context MEDIUMTEXT") + MigrateTreeMap.upgrade() diff --git a/superset/migrations/versions/2022-07-19_15-16_a39867932713_query_context_to_mediumtext.py b/superset/migrations/versions/2022-07-19_15-16_a39867932713_query_context_to_mediumtext.py index 92b8ad115a8..027b8c77dd1 100644 --- a/superset/migrations/versions/2022-07-19_15-16_a39867932713_query_context_to_mediumtext.py +++ b/superset/migrations/versions/2022-07-19_15-16_a39867932713_query_context_to_mediumtext.py @@ -21,14 +21,13 @@ Revises: 06e1e70058c7 Create Date: 2022-07-19 15:16:06.091961 """ +from alembic import op +from sqlalchemy.dialects.mysql.base import MySQLDialect # revision identifiers, used by Alembic. revision = "a39867932713" down_revision = "06e1e70058c7" -from alembic import op -from sqlalchemy.dialects.mysql.base import MySQLDialect - def upgrade(): if isinstance(op.get_bind().dialect, MySQLDialect):