"""empty message Revision ID: 0014_add_template_version Revises: 0012_complete_provider_details Create Date: 2016-05-11 16:00:51.478012 """ # revision identifiers, used by Alembic. revision = "0014_add_template_version" down_revision = "0012_complete_provider_details" import sqlalchemy as sa from alembic import op from sqlalchemy.dialects import postgresql def upgrade(): op.add_column("jobs", sa.Column("template_version", sa.Integer(), nullable=True)) op.get_bind() op.execute( "update jobs set template_version = (select version from templates where id = template_id)" ) op.add_column( "notifications", sa.Column("template_version", sa.Integer(), nullable=True) ) op.execute( "update notifications set template_version = (select version from templates where id = template_id)" ) op.alter_column("jobs", "template_version", nullable=False) op.alter_column("notifications", "template_version", nullable=False) # fix template_history where created_by_id is not set. query = ( "update templates_history set created_by_id = " " (select created_by_id from templates " " where templates.id = templates_history.id " " and templates.version = templates_history.version) " "where templates_history.created_by_id is null" ) op.execute(query) def downgrade(): op.drop_column("notifications", "template_version") op.drop_column("jobs", "template_version")