From 9ce6b50a384d9e9b529777e262ad676c9057c3f4 Mon Sep 17 00:00:00 2001 From: Yongjie Zhao Date: Sat, 23 Jan 2021 23:00:26 +0800 Subject: [PATCH] wip --- ...649a77_migrate_x_dateunit_in_time_range.py | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/superset/migrations/versions/260bf0649a77_migrate_x_dateunit_in_time_range.py b/superset/migrations/versions/260bf0649a77_migrate_x_dateunit_in_time_range.py index 71fe2a57e1b89..ec489c35d9097 100644 --- a/superset/migrations/versions/260bf0649a77_migrate_x_dateunit_in_time_range.py +++ b/superset/migrations/versions/260bf0649a77_migrate_x_dateunit_in_time_range.py @@ -23,18 +23,18 @@ """ # revision identifiers, used by Alembic. -revision = '260bf0649a77' -down_revision = 'c878781977c6' +revision = "260bf0649a77" +down_revision = "c878781977c6" import json import re -from alembic import op import sqlalchemy as sa -from sqlalchemy import Column, Integer, Text, or_ -from sqlalchemy.ext.declarative import declarative_base +from alembic import op +from sqlalchemy import Column, Integer, or_, Text from sqlalchemy.dialects.mysql.base import MySQLDialect from sqlalchemy.dialects.sqlite.base import SQLiteDialect +from sqlalchemy.ext.declarative import declarative_base from superset import db from superset.utils.date_parser import DateRangeMigration @@ -64,8 +64,8 @@ def upgrade(): ) elif isinstance(bind.dialect, MySQLDialect): where_clause = or_( - sa.func.REGEXP_LIKE(Slice.params, x_dateunit_in_since, 'i'), - sa.func.REGEXP_LIKE(Slice.params, x_dateunit_in_until, 'i'), + sa.func.REGEXP_LIKE(Slice.params, x_dateunit_in_since, "i"), + sa.func.REGEXP_LIKE(Slice.params, x_dateunit_in_until, "i"), ) else: # default metadata is pg, so: isinstance(bind.dialect, PGDialect): @@ -74,26 +74,21 @@ def upgrade(): Slice.params.op("~*")(x_dateunit_in_until), ) - slices = ( - session - .query(Slice) - .filter(where_clause) - .all() - ) + slices = session.query(Slice).filter(where_clause).all() sep = " : " pattern = DateRangeMigration.x_dateunit for idx, slc in enumerate(slices): print(f"Upgrading ({idx + 1}/{len(slices)}): {slc.slice_name}#{slc.id}") params = json.loads(slc.params) - time_range = params['time_range'] + time_range = params["time_range"] if sep in time_range: start, end = time_range.split(sep) if re.match(pattern, start): start = f"{start.strip()} ago" if re.match(pattern, end): end = f"{end.strip()} later" - params['time_range'] = f"{start}{sep}{end}" + params["time_range"] = f"{start}{sep}{end}" slc.params = json.dumps(params, sort_keys=True, indent=4) session.commit()