feat: Adds CLI commands to execute viz migrations (#25304)

This commit is contained in:
Michael S. Molina
2023-09-19 14:34:08 -03:00
committed by GitHub
parent f672d5da5c
commit b722a95bab
7 changed files with 140 additions and 20 deletions

View File

@@ -20,11 +20,11 @@ import copy
import json
from typing import Any
from alembic import op
from sqlalchemy import and_, Column, Integer, String, Text
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import Session
from superset import conf, db, is_feature_enabled
from superset import conf, is_feature_enabled
from superset.constants import TimeGrain
from superset.migrations.shared.utils import paginated_update, try_load_json
@@ -156,9 +156,7 @@ class MigrateViz:
return slc
@classmethod
def upgrade(cls) -> None:
bind = op.get_bind()
session = db.Session(bind=bind)
def upgrade(cls, session: Session) -> None:
slices = session.query(Slice).filter(Slice.viz_type == cls.source_viz_type)
for slc in paginated_update(
slices,
@@ -170,9 +168,7 @@ class MigrateViz:
session.merge(new_viz)
@classmethod
def downgrade(cls) -> None:
bind = op.get_bind()
session = db.Session(bind=bind)
def downgrade(cls, session: Session) -> None:
slices = session.query(Slice).filter(
and_(
Slice.viz_type == cls.target_viz_type,