123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252 |
- """Add cascades
- Revision ID: af3f5579c84d
- Revises: 7c3fcf8a3335
- Create Date: 2018-02-02 10:27:50.290095
- """
- import logging
- from alembic import op
- import sqlalchemy as sa
- import flaskbb
- logger = logging.getLogger("alembic.runtime.migration")
- # revision identifiers, used by Alembic.
- revision = 'af3f5579c84d'
- down_revision = '7c3fcf8a3335'
- branch_labels = ()
- depends_on = None
- def upgrade():
- # ### commands auto generated by Alembic - please adjust! ###
- con = op.get_bind()
- if con.engine.dialect.name == "sqlite":
- # its not possible to remove unnamed constraints...
- logger.warning("SQLite is only partially supported for revision {}."
- .format(revision))
- with op.batch_alter_table('conversations', schema=None) as batch_op:
- if con.engine.dialect.name == "mysql":
- # user_id
- batch_op.drop_constraint("conversations_ibfk_3", type_='foreignkey')
- # to_user_id
- batch_op.drop_constraint("conversations_ibfk_2", type_='foreignkey')
- # from_user_id
- batch_op.drop_constraint("conversations_ibfk_1", type_='foreignkey')
- elif con.engine.dialect.name == "postgresql":
- batch_op.drop_constraint('conversations_to_user_id_fkey', type_='foreignkey')
- batch_op.drop_constraint('conversations_from_user_id_fkey', type_='foreignkey')
- batch_op.drop_constraint('conversations_user_id_fkey', type_='foreignkey')
- batch_op.create_foreign_key(batch_op.f('fk_conversations_user_id_users'), 'users', ['user_id'], ['id'], ondelete='CASCADE')
- batch_op.create_foreign_key(batch_op.f('fk_conversations_from_user_id_users'), 'users', ['from_user_id'], ['id'], ondelete='SET NULL')
- batch_op.create_foreign_key(batch_op.f('fk_conversations_to_user_id_users'), 'users', ['to_user_id'], ['id'], ondelete='SET NULL')
- with op.batch_alter_table('forumgroups', schema=None) as batch_op:
- if con.engine.dialect.name == "sqlite":
- batch_op.drop_constraint('fk_forum_id', type_='foreignkey')
- elif con.engine.dialect.name == "mysql":
- # group_id
- batch_op.drop_constraint("forumgroups_ibfk_1", type_='foreignkey')
- elif con.engine.dialect.name == "postgresql":
- batch_op.drop_constraint('forumgroups_group_id_fkey', type_='foreignkey')
- batch_op.create_foreign_key(batch_op.f('fk_forumgroups_group_id_groups'), 'groups', ['group_id'], ['id'], ondelete='CASCADE')
- batch_op.create_foreign_key(batch_op.f('fk_forumgroups_forum_id_forums'), 'forums', ['forum_id'], ['id'], ondelete='CASCADE')
- with op.batch_alter_table('forums', schema=None) as batch_op:
- if con.engine.dialect.name == "mysql":
- # category_id
- batch_op.drop_constraint("forums_ibfk_1", type_='foreignkey')
- # last_post_user_id
- batch_op.drop_constraint("forums_ibfk_3", type_='foreignkey')
- elif con.engine.dialect.name == "postgresql":
- batch_op.drop_constraint('forums_category_id_fkey', type_='foreignkey')
- batch_op.drop_constraint('forums_last_post_user_id_fkey', type_='foreignkey')
- batch_op.create_foreign_key(batch_op.f('fk_forums_category_id_categories'), 'categories', ['category_id'], ['id'], ondelete='CASCADE')
- batch_op.create_foreign_key(batch_op.f('fk_forums_last_post_user_id_users'), 'users', ['last_post_user_id'], ['id'], ondelete='SET NULL')
- with op.batch_alter_table('forumsread', schema=None) as batch_op:
- if con.engine.dialect.name == "sqlite":
- batch_op.drop_constraint('fk_fr_forum_id', type_='foreignkey')
- elif con.engine.dialect.name == "mysql":
- # user_id
- batch_op.drop_constraint("forumsread_ibfk_1", type_='foreignkey')
- elif con.engine.dialect.name == "postgresql":
- batch_op.drop_constraint('forumsread_user_id_fkey', type_='foreignkey')
- batch_op.create_foreign_key(batch_op.f('fk_forumsread_forum_id_forums'), 'forums', ['forum_id'], ['id'], ondelete='CASCADE')
- batch_op.create_foreign_key(batch_op.f('fk_forumsread_user_id_users'), 'users', ['user_id'], ['id'], ondelete='CASCADE')
- with op.batch_alter_table('groups_users', schema=None) as batch_op:
- if con.engine.dialect.name == "mysql":
- # group_id
- batch_op.drop_constraint("groups_users_ibfk_1", type_='foreignkey')
- # user_id
- batch_op.drop_constraint("groups_users_ibfk_2", type_='foreignkey')
- elif con.engine.dialect.name == "postgresql":
- batch_op.drop_constraint('groups_users_group_id_fkey', type_='foreignkey')
- batch_op.drop_constraint('groups_users_user_id_fkey', type_='foreignkey')
- batch_op.create_foreign_key(batch_op.f('fk_groups_users_user_id_users'), 'users', ['user_id'], ['id'], ondelete='CASCADE')
- batch_op.create_foreign_key(batch_op.f('fk_groups_users_group_id_groups'), 'groups', ['group_id'], ['id'], ondelete='CASCADE')
- with op.batch_alter_table('messages', schema=None) as batch_op:
- batch_op.alter_column('user_id',
- existing_type=sa.INTEGER(),
- nullable=True)
- if con.engine.dialect.name == "mysql":
- # conversation_id
- batch_op.drop_constraint("messages_ibfk_1", type_='foreignkey')
- # user_id
- batch_op.drop_constraint("messages_ibfk_2", type_='foreignkey')
- elif con.engine.dialect.name == "postgresql":
- batch_op.drop_constraint('messages_conversation_id_fkey', type_='foreignkey')
- batch_op.drop_constraint('messages_user_id_fkey', type_='foreignkey')
- batch_op.create_foreign_key(batch_op.f('fk_messages_conversation_id_conversations'), 'conversations', ['conversation_id'], ['id'], ondelete='CASCADE')
- batch_op.create_foreign_key(batch_op.f('fk_messages_user_id_users'), 'users', ['user_id'], ['id'], ondelete='SET NULL')
- with op.batch_alter_table('moderators', schema=None) as batch_op:
- if con.engine.dialect.name == "sqlite":
- batch_op.drop_constraint('fk_forum_id', type_='foreignkey')
- elif con.engine.dialect.name == "mysql":
- # user_id
- batch_op.drop_constraint("moderators_ibfk_1", type_='foreignkey')
- elif con.engine.dialect.name == "postgresql":
- batch_op.drop_constraint('moderators_user_id_fkey', type_='foreignkey')
- batch_op.create_foreign_key(batch_op.f('fk_moderators_forum_id_forums'), 'forums', ['forum_id'], ['id'], ondelete='CASCADE')
- batch_op.create_foreign_key(batch_op.f('fk_moderators_user_id_users'), 'users', ['user_id'], ['id'], ondelete='CASCADE')
- with op.batch_alter_table('plugin_store', schema=None) as batch_op:
- if con.engine.dialect.name == "mysql":
- # plugin_id
- batch_op.drop_constraint("plugin_store_ibfk_1", type_='foreignkey')
- elif con.engine.dialect.name == "postgresql":
- batch_op.drop_constraint('plugin_store_plugin_id_fkey', type_='foreignkey')
- batch_op.create_foreign_key(batch_op.f('fk_plugin_store_plugin_id_plugin_registry'), 'plugin_registry', ['plugin_id'], ['id'], ondelete='CASCADE')
- with op.batch_alter_table('posts', schema=None) as batch_op:
- if con.engine.dialect.name == "sqlite":
- batch_op.drop_constraint('fk_post_topic_id', type_='foreignkey')
- batch_op.create_foreign_key(batch_op.f('fk_posts_topic_id_topics'), 'topics', ['topic_id'], ['id'], ondelete='CASCADE')
- with op.batch_alter_table('settings', schema=None) as batch_op:
- if con.engine.dialect.name == "sqlite":
- batch_op.drop_constraint('fk_settingsgroup', type_='foreignkey')
- batch_op.create_foreign_key(batch_op.f('fk_settings_settingsgroup_settingsgroup'), 'settingsgroup', ['settingsgroup'], ['key'], ondelete='CASCADE')
- with op.batch_alter_table('topics', schema=None) as batch_op:
- if con.engine.dialect.name == "sqlite":
- batch_op.drop_constraint('fk_topic_forum_id', type_='foreignkey')
- batch_op.create_foreign_key(batch_op.f('fk_topics_forum_id_forums'), 'forums', ['forum_id'], ['id'], ondelete='CASCADE')
- with op.batch_alter_table('topicsread', schema=None) as batch_op:
- if con.engine.dialect.name == "sqlite":
- batch_op.drop_constraint('fk_tr_forum_id', type_='foreignkey')
- batch_op.drop_constraint('fk_tr_topic_id', type_='foreignkey')
- elif con.engine.dialect.name == "mysql":
- # user_id
- batch_op.drop_constraint("topicsread_ibfk_1", type_='foreignkey')
- elif con.engine.dialect.name == "postgresql":
- batch_op.drop_constraint('topicsread_user_id_fkey', type_='foreignkey')
- batch_op.create_foreign_key(batch_op.f('fk_topicsread_topic_id_topics'), 'topics', ['topic_id'], ['id'], ondelete='CASCADE')
- batch_op.create_foreign_key(batch_op.f('fk_topicsread_forum_id_forums'), 'forums', ['forum_id'], ['id'], ondelete='CASCADE')
- batch_op.create_foreign_key(batch_op.f('fk_topicsread_user_id_users'), 'users', ['user_id'], ['id'], ondelete='CASCADE')
- with op.batch_alter_table('topictracker', schema=None) as batch_op:
- if con.engine.dialect.name == "sqlite":
- batch_op.drop_constraint('fk_tracker_topic_id', type_='foreignkey')
- elif con.engine.dialect.name == "mysql":
- # user_id
- batch_op.drop_constraint("topictracker_ibfk_1", type_='foreignkey')
- elif con.engine.dialect.name == "postgresql":
- batch_op.drop_constraint('topictracker_user_id_fkey', type_='foreignkey')
- batch_op.create_foreign_key(batch_op.f('fk_topictracker_topic_id_topics'), 'topics', ['topic_id'], ['id'], ondelete='CASCADE')
- batch_op.create_foreign_key(batch_op.f('fk_topictracker_user_id_users'), 'users', ['user_id'], ['id'], ondelete='CASCADE')
- # ### end Alembic commands ###
- def downgrade():
- # ### commands auto generated by Alembic - please adjust! ###
- with op.batch_alter_table('topictracker', schema=None) as batch_op:
- batch_op.drop_constraint(batch_op.f('fk_topictracker_user_id_users'), type_='foreignkey')
- batch_op.drop_constraint(batch_op.f('fk_topictracker_topic_id_topics'), type_='foreignkey')
- batch_op.create_foreign_key('fk_topictracker_user_id_users', 'users', ['user_id'], ['id'])
- with op.batch_alter_table('topicsread', schema=None) as batch_op:
- batch_op.drop_constraint(batch_op.f('fk_topicsread_user_id_users'), type_='foreignkey')
- batch_op.drop_constraint(batch_op.f('fk_topicsread_forum_id_forums'), type_='foreignkey')
- batch_op.drop_constraint(batch_op.f('fk_topicsread_topic_id_topics'), type_='foreignkey')
- batch_op.create_foreign_key('fk_topicsread_user_id_users', 'users', ['user_id'], ['id'])
- with op.batch_alter_table('topics', schema=None) as batch_op:
- batch_op.drop_constraint(batch_op.f('fk_topics_forum_id_forums'), type_='foreignkey')
- with op.batch_alter_table('settings', schema=None) as batch_op:
- batch_op.drop_constraint(batch_op.f('fk_settings_settingsgroup_settingsgroup'), type_='foreignkey')
- with op.batch_alter_table('posts', schema=None) as batch_op:
- batch_op.drop_constraint(batch_op.f('fk_posts_topic_id_topics'), type_='foreignkey')
- with op.batch_alter_table('plugin_store', schema=None) as batch_op:
- batch_op.drop_constraint(batch_op.f('fk_plugin_store_plugin_id_plugin_registry'), type_='foreignkey')
- batch_op.create_foreign_key('fk_plugin_store_plugin_id_plugin_registry', 'plugin_registry', ['plugin_id'], ['id'])
- with op.batch_alter_table('moderators', schema=None) as batch_op:
- batch_op.drop_constraint(batch_op.f('fk_moderators_user_id_users'), type_='foreignkey')
- batch_op.drop_constraint(batch_op.f('fk_moderators_forum_id_forums'), type_='foreignkey')
- batch_op.create_foreign_key('fk_moderators_user_id_users', 'users', ['user_id'], ['id'])
- with op.batch_alter_table('messages', schema=None) as batch_op:
- batch_op.drop_constraint(batch_op.f('fk_messages_user_id_users'), type_='foreignkey')
- batch_op.drop_constraint(batch_op.f('fk_messages_conversation_id_conversations'), type_='foreignkey')
- batch_op.alter_column('user_id', existing_type=flaskbb.utils.database.UTCDateTime(timezone=True), nullable=False)
- batch_op.create_foreign_key('fk_messages_user_id_users', 'users', ['user_id'], ['id'])
- batch_op.create_foreign_key('fk_messages_conversation_id_conversations', 'conversations', ['conversation_id'], ['id'])
- with op.batch_alter_table('groups_users', schema=None) as batch_op:
- batch_op.drop_constraint(batch_op.f('fk_groups_users_group_id_groups'), type_='foreignkey')
- batch_op.drop_constraint(batch_op.f('fk_groups_users_user_id_users'), type_='foreignkey')
- batch_op.create_foreign_key('fk_groups_users_user_id_users', 'users', ['user_id'], ['id'])
- batch_op.create_foreign_key('fk_groups_users_group_id_groups', 'groups', ['group_id'], ['id'])
- with op.batch_alter_table('forumsread', schema=None) as batch_op:
- batch_op.drop_constraint(batch_op.f('fk_forumsread_user_id_users'), type_='foreignkey')
- batch_op.drop_constraint(batch_op.f('fk_forumsread_forum_id_forums'), type_='foreignkey')
- batch_op.create_foreign_key('fk_forumsread_user_id_users', 'users', ['user_id'], ['id'])
- with op.batch_alter_table('forums', schema=None) as batch_op:
- batch_op.drop_constraint(batch_op.f('fk_forums_last_post_user_id_users'), type_='foreignkey')
- batch_op.drop_constraint(batch_op.f('fk_forums_category_id_categories'), type_='foreignkey')
- batch_op.create_foreign_key('fk_forums_last_post_user_id_users', 'users', ['last_post_user_id'], ['id'])
- batch_op.create_foreign_key('fk_forums_category_id_categories', 'categories', ['category_id'], ['id'])
- with op.batch_alter_table('forumgroups', schema=None) as batch_op:
- batch_op.drop_constraint(batch_op.f('fk_forumgroups_forum_id_forums'), type_='foreignkey')
- batch_op.drop_constraint(batch_op.f('fk_forumgroups_group_id_groups'), type_='foreignkey')
- batch_op.create_foreign_key('fk_forumgroups_group_id_groups', 'groups', ['group_id'], ['id'])
- with op.batch_alter_table('conversations', schema=None) as batch_op:
- batch_op.drop_constraint(batch_op.f('fk_conversations_user_id_users'), type_='foreignkey')
- batch_op.create_foreign_key('fk_conversations_user_id_users', 'users', ['user_id'], ['id'])
- # ### end Alembic commands ###
|