""" Revision ID: 412b22cb656a Revises: 4c50b903d1ae Create Date: 2016-05-17 17:37:41.210232 """ # revision identifiers, used by Alembic. revision = "412b22cb656a" down_revision = "4c50b903d1ae" from alembic import op import sqlalchemy as sa from sqlalchemy.sql import text def upgrade(): ### commands auto generated by Alembic - please adjust! ### op.create_table( "roles_authorities", sa.Column("authority_id", sa.Integer(), nullable=True), sa.Column("role_id", sa.Integer(), nullable=True), sa.ForeignKeyConstraint(["authority_id"], ["authorities.id"]), sa.ForeignKeyConstraint(["role_id"], ["roles.id"]), ) op.create_index( "roles_authorities_ix", "roles_authorities", ["authority_id", "role_id"], unique=True, ) op.create_table( "roles_certificates", sa.Column("certificate_id", sa.Integer(), nullable=True), sa.Column("role_id", sa.Integer(), nullable=True), sa.ForeignKeyConstraint(["certificate_id"], ["certificates.id"]), sa.ForeignKeyConstraint(["role_id"], ["roles.id"]), ) op.create_index( "roles_certificates_ix", "roles_certificates", ["certificate_id", "role_id"], unique=True, ) op.create_index( "certificate_associations_ix", "certificate_associations", ["domain_id", "certificate_id"], unique=True, ) op.create_index( "certificate_destination_associations_ix", "certificate_destination_associations", ["destination_id", "certificate_id"], unique=True, ) op.create_index( "certificate_notification_associations_ix", "certificate_notification_associations", ["notification_id", "certificate_id"], unique=True, ) op.create_index( "certificate_replacement_associations_ix", "certificate_replacement_associations", ["certificate_id", "certificate_id"], unique=True, ) op.create_index( "certificate_source_associations_ix", "certificate_source_associations", ["source_id", "certificate_id"], unique=True, ) op.create_index( "roles_users_ix", "roles_users", ["user_id", "role_id"], unique=True ) ### end Alembic commands ### # migrate existing authority_id relationship to many_to_many conn = op.get_bind() for id, authority_id in conn.execute( text("select id, authority_id from roles where authority_id is not null") ): stmt = text( "insert into roles_authoritties (role_id, authority_id) values (:role_id, :authority_id)" ) stmt = stmt.bindparams(role_id=id, authority_id=authority_id) op.execute(stmt) def downgrade(): ### commands auto generated by Alembic - please adjust! ### op.drop_index("roles_users_ix", table_name="roles_users") op.drop_index( "certificate_source_associations_ix", table_name="certificate_source_associations", ) op.drop_index( "certificate_replacement_associations_ix", table_name="certificate_replacement_associations", ) op.drop_index( "certificate_notification_associations_ix", table_name="certificate_notification_associations", ) op.drop_index( "certificate_destination_associations_ix", table_name="certificate_destination_associations", ) op.drop_index("certificate_associations_ix", table_name="certificate_associations") op.drop_index("roles_certificates_ix", table_name="roles_certificates") op.drop_table("roles_certificates") op.drop_index("roles_authorities_ix", table_name="roles_authorities") op.drop_table("roles_authorities") ### end Alembic commands ###