From ece69fbb75086cb8855789881a32c6daca4be483 Mon Sep 17 00:00:00 2001 From: ShengyaoQian Date: Thu, 20 Oct 2016 08:51:13 -0700 Subject: [PATCH] Fix migration for make creator owners (#1262) --- .../27ae655e4247_make_creator_owners.py | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/caravel/migrations/versions/27ae655e4247_make_creator_owners.py b/caravel/migrations/versions/27ae655e4247_make_creator_owners.py index e9f84b63bf..caddeea8f1 100644 --- a/caravel/migrations/versions/27ae655e4247_make_creator_owners.py +++ b/caravel/migrations/versions/27ae655e4247_make_creator_owners.py @@ -13,6 +13,7 @@ down_revision = 'd8bc074f7aad' from alembic import op from caravel import db from sqlalchemy.ext.declarative import declarative_base +from flask_appbuilder.models.mixins import AuditMixin from sqlalchemy.orm import relationship from flask_appbuilder import Model from sqlalchemy import ( @@ -20,18 +21,35 @@ from sqlalchemy import ( Base = declarative_base() +class User(Base): + """Declarative class to do query in upgrade""" + __tablename__ = 'ab_user' + id = Column(Integer, primary_key=True) -class Slice(Base): +slice_user = Table('slice_user', Base.metadata, + Column('id', Integer, primary_key=True), + Column('user_id', Integer, ForeignKey('ab_user.id')), + Column('slice_id', Integer, ForeignKey('slices.id')) +) + +dashboard_user = Table( + 'dashboard_user', Base.metadata, + Column('id', Integer, primary_key=True), + Column('user_id', Integer, ForeignKey('ab_user.id')), + Column('dashboard_id', Integer, ForeignKey('dashboards.id')) +) + +class Slice(Base, AuditMixin): """Declarative class to do query in upgrade""" __tablename__ = 'slices' id = Column(Integer, primary_key=True) + owners = relationship("User", secondary=slice_user) - -class Dashboard(Base): +class Dashboard(Base, AuditMixin): """Declarative class to do query in upgrade""" __tablename__ = 'dashboards' id = Column(Integer, primary_key=True) - + owners = relationship("User", secondary=dashboard_user) def upgrade(): bind = op.get_bind()