"""Make creator owners

Revision ID: 27ae655e4247
Revises: d8bc074f7aad
Create Date: 2016-06-27 08:43:52.592242

"""

# revision identifiers, used by Alembic.
revision = '27ae655e4247'
down_revision = 'd8bc074f7aad'

from alembic import op
from caravel import db
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship
from flask_appbuilder import Model
from sqlalchemy import (
    Column, Integer, ForeignKey, Table)

Base = declarative_base()


class Slice(Base):
    """Declarative class to do query in upgrade"""
    __tablename__ = 'slices'
    id = Column(Integer, primary_key=True)


class Dashboard(Base):
    """Declarative class to do query in upgrade"""
    __tablename__ = 'dashboards'
    id = Column(Integer, primary_key=True)


def upgrade():
    bind = op.get_bind()
    session = db.Session(bind=bind)

    objects = session.query(Slice).all()
    objects += session.query(Dashboard).all()
    for obj in objects:
        if obj.created_by and obj.created_by not in obj.owners:
            obj.owners.append(obj.created_by)
        session.commit()
    session.close()


def downgrade():
    pass

@@ -312,16 +312,70 @@
 ve_base%0A
+from flask_appbuilder.models.mixins import AuditMixin%0A
 from sql
@@ -534,16 +534,601 @@
 base()%0A%0A
+class User(Base):%0A    %22%22%22Declarative class to do query in upgrade%22%22%22%0A    __tablename__ = 'ab_user'%0A    id = Column(Integer, primary_key=True)%0A%0Aslice_user = Table('slice_user', Base.metadata,%0A    Column('id', Integer, primary_key=True),%0A    Column('user_id', Integer, ForeignKey('ab_user.id')),%0A    Column('slice_id', Integer, ForeignKey('slices.id'))%0A)%0A%0Adashboard_user = Table(%0A    'dashboard_user', Base.metadata,%0A    Column('id', Integer, primary_key=True),%0A    Column('user_id', Integer, ForeignKey('ab_user.id')),%0A    Column('dashboard_id', Integer, ForeignKey('dashboards.id'))%0A)%0A
 %0Aclass S
@@ -1132,24 +1132,36 @@
 s Slice(Base
+, AuditMixin
 ):%0A    %22%22%22De
@@ -1274,16 +1274,71 @@
 y=True)%0A
+    owners = relationship(%22User%22, secondary=slice_user)
 %0A%0Aclass 
@@ -1347,24 +1347,36 @@
 shboard(Base
+, AuditMixin
 ):%0A    %22%22%22De
@@ -1493,16 +1493,75 @@
 y=True)%0A
+    owners = relationship(%22User%22, secondary=dashboard_user)
 %0A%0Adef up

Fix migration for make creator owners (#1262)