2016-04-25 10:38:37 +01:00
""" empty message
Revision ID : 0007 _template_history
Revises : 0006 _api_keys_history
Create Date : 2016 - 04 - 22 09 : 51 : 55.615891
"""
# revision identifiers, used by Alembic.
revision = ' 0007_template_history '
down_revision = ' 0006_api_keys_history '
from alembic import op
import sqlalchemy as sa
from sqlalchemy . dialects import postgresql
def upgrade ( ) :
### commands auto generated by Alembic - please adjust! ###
op . create_table ( ' templates_history ' ,
sa . Column ( ' id ' , postgresql . UUID ( as_uuid = True ) , nullable = False ) ,
sa . Column ( ' name ' , sa . String ( length = 255 ) , nullable = False ) ,
sa . Column ( ' template_type ' , sa . String ( ) , nullable = False ) ,
sa . Column ( ' created_at ' , sa . DateTime ( ) , nullable = False ) ,
sa . Column ( ' updated_at ' , sa . DateTime ( ) , nullable = True ) ,
sa . Column ( ' content ' , sa . Text ( ) , nullable = False ) ,
sa . Column ( ' service_id ' , postgresql . UUID ( as_uuid = True ) , nullable = False ) ,
sa . Column ( ' subject ' , sa . Text ( ) , nullable = True ) ,
2016-04-25 13:57:55 +01:00
sa . Column ( ' created_by_id ' , postgresql . UUID ( as_uuid = True ) , nullable = True ) ,
2016-04-25 10:38:37 +01:00
sa . Column ( ' version ' , sa . Integer ( ) , autoincrement = False , nullable = False ) ,
sa . PrimaryKeyConstraint ( ' id ' , ' version ' )
)
op . create_index ( op . f ( ' ix_templates_history_created_by_id ' ) , ' templates_history ' , [ ' created_by_id ' ] , unique = False )
op . create_index ( op . f ( ' ix_templates_history_service_id ' ) , ' templates_history ' , [ ' service_id ' ] , unique = False )
op . add_column ( ' templates ' , sa . Column ( ' created_by_id ' , postgresql . UUID ( as_uuid = True ) , nullable = True ) )
op . add_column ( ' templates ' , sa . Column ( ' version ' , sa . Integer ( ) , nullable = True ) )
op . get_bind ( )
op . execute ( ' UPDATE templates SET created_by_id = (SELECT user_id FROM user_to_service WHERE templates.service_id = user_to_service.service_id LIMIT 1) ' )
op . execute ( ' UPDATE templates SET version = 1, created_at = now() ' )
op . execute ( (
' INSERT INTO templates_history (id, name, template_type, created_at, updated_at, content, service_id, subject, version) '
' SELECT id, name, template_type, created_at, updated_at, content, service_id, subject, version FROM templates ' ) )
op . alter_column ( ' templates ' , ' created_at ' , nullable = False )
op . alter_column ( ' templates ' , ' created_by_id ' , nullable = False )
op . alter_column ( ' templates ' , ' version ' , nullable = False )
op . create_index ( op . f ( ' ix_templates_created_by_id ' ) , ' templates ' , [ ' created_by_id ' ] , unique = False )
op . create_foreign_key ( " fk_templates_created_by_id " , ' templates ' , ' users ' , [ ' created_by_id ' ] , [ ' id ' ] )
### end Alembic commands ###
def downgrade ( ) :
### commands auto generated by Alembic - please adjust! ###
op . drop_constraint ( " fk_templates_created_by_id " , ' templates ' , type_ = ' foreignkey ' )
op . drop_index ( op . f ( ' ix_templates_created_by_id ' ) , table_name = ' templates ' )
op . drop_column ( ' templates ' , ' version ' )
op . drop_column ( ' templates ' , ' created_by_id ' )
op . alter_column ( ' api_keys_history ' , ' created_by_id ' ,
existing_type = postgresql . UUID ( ) ,
nullable = True )
op . alter_column ( ' api_keys_history ' , ' created_at ' ,
existing_type = postgresql . TIMESTAMP ( ) ,
nullable = True )
op . drop_index ( op . f ( ' ix_templates_history_service_id ' ) , table_name = ' templates_history ' )
op . drop_index ( op . f ( ' ix_templates_history_created_by_id ' ) , table_name = ' templates_history ' )
op . drop_table ( ' templates_history ' )
### end Alembic commands ###