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()