migrations/versions/e3282e2db2d7_.py (141 lines of code) (raw):
"""empty message
Revision ID: e3282e2db2d7
Revises: 068674f06b0f
Create Date: 2019-06-17 18:34:11.058440
"""
from alembic import op
import sqlalchemy as sa
from backend.models.postgis.statuses import TeamVisibility
# revision identifiers, used by Alembic.
revision = "e3282e2db2d7"
down_revision = "d2e18f0f34a9"
branch_labels = None
depends_on = None
def upgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.create_table(
"organisations",
sa.Column("id", sa.Integer(), nullable=False),
sa.Column("name", sa.String(length=512), nullable=False),
sa.Column("logo", sa.String(), nullable=True),
sa.Column("url", sa.String(), nullable=True),
sa.PrimaryKeyConstraint("id")
# ,
# sa.UniqueConstraint("name"),
)
op.create_table(
"organisation_managers",
sa.Column("organisation_id", sa.Integer(), nullable=False),
sa.Column("user_id", sa.BigInteger(), nullable=False),
sa.ForeignKeyConstraint(["organisation_id"], ["organisations.id"]),
sa.ForeignKeyConstraint(["user_id"], ["users.id"]),
)
op.create_table(
"teams",
sa.Column("id", sa.Integer(), nullable=False),
sa.Column("organisation_id", sa.Integer(), nullable=False),
sa.Column("name", sa.String(length=512), nullable=False),
sa.Column("logo", sa.String(), nullable=True),
sa.Column("description", sa.String(), nullable=True),
sa.Column("invite_only", sa.Boolean(), nullable=False),
sa.Column(
"visibility",
sa.Integer(),
nullable=False,
server_default=str(TeamVisibility.PRIVATE.value),
),
sa.ForeignKeyConstraint(
["organisation_id"], ["organisations.id"], name="fk_organisations"
),
sa.PrimaryKeyConstraint("id"),
)
op.create_table(
"project_teams",
sa.Column("team_id", sa.Integer(), nullable=False),
sa.Column("project_id", sa.Integer(), nullable=False),
sa.Column("role", sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(["project_id"], ["projects.id"]),
sa.ForeignKeyConstraint(["team_id"], ["teams.id"]),
sa.PrimaryKeyConstraint("team_id", "project_id"),
)
op.create_table(
"team_members",
sa.Column("team_id", sa.Integer(), nullable=False),
sa.Column("user_id", sa.BigInteger(), nullable=False),
sa.Column("function", sa.Integer(), nullable=False),
sa.ForeignKeyConstraint(["team_id"], ["teams.id"], name="fk_teams"),
sa.ForeignKeyConstraint(["user_id"], ["users.id"], name="fk_users"),
sa.PrimaryKeyConstraint("team_id", "user_id"),
)
op.add_column("projects", sa.Column("organisation_id", sa.Integer(), nullable=True))
op.alter_column(
"projects", "task_creation_mode", existing_type=sa.INTEGER(), nullable=False
)
op.create_index(
op.f("ix_projects_organisation_id"),
"projects",
["organisation_id"],
unique=False,
)
op.create_foreign_key(
"fk_organisations", "projects", "organisations", ["organisation_id"], ["id"]
)
op.drop_index(
"idx_task_validation_mapper_status_composite",
table_name="task_invalidation_history",
)
op.create_index(
"idx_task_validation_mapper_status_composite",
"task_invalidation_history",
["mapper_id", "is_closed"],
unique=False,
)
# ### commands auto generated by Alembic - please adjust! ###
op.create_table(
"campaigns",
sa.Column("id", sa.Integer(), nullable=False),
sa.Column("name", sa.String(), nullable=False),
sa.Column("logo", sa.String(), nullable=True),
sa.Column("url", sa.String(), nullable=True),
sa.Column("description", sa.String(), nullable=True),
sa.PrimaryKeyConstraint("id"),
)
op.create_table(
"campaign_projects",
sa.Column("campaign_id", sa.Integer(), nullable=True),
sa.Column("project_id", sa.Integer(), nullable=True),
sa.ForeignKeyConstraint(["campaign_id"], ["campaigns.id"]),
sa.ForeignKeyConstraint(["project_id"], ["projects.id"]),
)
op.create_table(
"campaign_organisations",
sa.Column("campaign_id", sa.Integer(), nullable=True),
sa.Column("organisation_id", sa.Integer(), nullable=True),
sa.ForeignKeyConstraint(["campaign_id"], ["campaigns.id"]),
sa.ForeignKeyConstraint(["organisation_id"], ["organisations.id"]),
)
op.drop_index(
"idx_task_validation_mapper_status_composite",
table_name="task_invalidation_history",
)
op.create_index(
"idx_task_validation_mapper_status_composite",
"task_invalidation_history",
["invalidator_id", "is_closed"],
unique=False,
)
# ### end Alembic commands ###
def downgrade():
# ### commands auto generated by Alembic - please adjust! ###
op.drop_index(
"idx_task_validation_mapper_status_composite",
table_name="task_invalidation_history",
)
op.create_index(
"idx_task_validation_mapper_status_composite",
"task_invalidation_history",
["invalidator_id", "is_closed"],
unique=False,
)
op.drop_constraint("fk_organisations", "projects", type_="foreignkey")
op.drop_index(op.f("ix_projects_organisation_id"), table_name="projects")
op.alter_column(
"projects", "task_creation_mode", existing_type=sa.INTEGER(), nullable=True
)
op.drop_column("projects", "organisation_id")
op.drop_table("team_members")
op.drop_table("project_teams")
op.drop_table("teams")
op.drop_table("campaign_organisations")
op.drop_table("campaign_projects")
op.drop_table("campaigns")
op.drop_table("organisation_managers")
op.drop_table("organisations")
# ### end Alembic commands ###