"""Adds support for rotation policies. Creates a default rotation policy (30 days) with the name 'default' ensures that all existing certificates use the default policy. Revision ID: a02a678ddc25 Revises: 8ae67285ff14 Create Date: 2017-07-12 11:45:49.257927 """ # revision identifiers, used by Alembic. revision = "a02a678ddc25" down_revision = "8ae67285ff14" 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( "rotation_policies", sa.Column("id", sa.Integer(), nullable=False), sa.Column("name", sa.String(), nullable=True), sa.Column("days", sa.Integer(), nullable=True), sa.PrimaryKeyConstraint("id"), ) op.add_column( "certificates", sa.Column("rotation_policy_id", sa.Integer(), nullable=True) ) op.create_foreign_key( None, "certificates", "rotation_policies", ["rotation_policy_id"], ["id"] ) conn = op.get_bind() stmt = text("insert into rotation_policies (days, name) values (:days, :name)") stmt = stmt.bindparams(days=30, name="default") conn.execute(stmt) stmt = text("select id from rotation_policies where name=:name") stmt = stmt.bindparams(name="default") rotation_policy_id = conn.execute(stmt).fetchone()[0] stmt = text("update certificates set rotation_policy_id=:rotation_policy_id") stmt = stmt.bindparams(rotation_policy_id=rotation_policy_id) conn.execute(stmt) # ### end Alembic commands ### def downgrade(): # ### commands auto generated by Alembic - please adjust! ### op.drop_constraint(None, "certificates", type_="foreignkey") op.drop_column("certificates", "rotation_policy_id") op.drop_index( "certificate_replacement_associations_ix", table_name="certificate_replacement_associations", ) op.create_index( "certificate_replacement_associations_ix", "certificate_replacement_associations", ["replaced_certificate_id", "certificate_id"], unique=True, ) op.drop_table("rotation_policies") # ### end Alembic commands ###