From 687dde9ee8445e15101cc0a2a16d75fe3b0cdad4 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Wed, 11 Jul 2018 07:22:46 -0400 Subject: Add cascades for repo deletion --- .../8d26b98e7d44_add_cascades_for_repo_deletion.py | 94 ++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 gitsrht/alembic/versions/8d26b98e7d44_add_cascades_for_repo_deletion.py (limited to 'gitsrht/alembic/versions/8d26b98e7d44_add_cascades_for_repo_deletion.py') diff --git a/gitsrht/alembic/versions/8d26b98e7d44_add_cascades_for_repo_deletion.py b/gitsrht/alembic/versions/8d26b98e7d44_add_cascades_for_repo_deletion.py new file mode 100644 index 0000000..212044b --- /dev/null +++ b/gitsrht/alembic/versions/8d26b98e7d44_add_cascades_for_repo_deletion.py @@ -0,0 +1,94 @@ +"""Add cascades for repo deletion + +Revision ID: 8d26b98e7d44 +Revises: ce3a03ec34a5 +Create Date: 2018-07-11 07:15:41.973647 + +""" + +# revision identifiers, used by Alembic. +revision = '8d26b98e7d44' +down_revision = 'ce3a03ec34a5' + +from alembic import op +import sqlalchemy as sa + + +def upgrade(): + op.drop_constraint( + constraint_name="redirect_new_repo_id_fkey", + table_name="redirect", + type_="foreignkey") + op.create_foreign_key( + constraint_name="redirect_new_repo_id_fkey", + source_table="redirect", + referent_table="repository", + local_cols=["new_repo_id"], + remote_cols=["id"], + ondelete="CASCADE") + op.drop_constraint( + constraint_name="access_repo_id_fkey", + table_name="access", + type_="foreignkey") + op.create_foreign_key( + constraint_name="access_repo_id_fkey", + source_table="access", + referent_table="repository", + local_cols=["repo_id"], + remote_cols=["id"], + ondelete="CASCADE") + op.drop_constraint( + constraint_name="webhook_repo_id_fkey", + table_name="webhook", + type_="foreignkey") + op.create_foreign_key( + constraint_name="webhook_repo_id_fkey", + source_table="webhook", + referent_table="repository", + local_cols=["repo_id"], + remote_cols=["id"], + ondelete="CASCADE") + op.drop_constraint( + constraint_name="webhook_oauth_token_id_fkey", + table_name="webhook", + type_="foreignkey") + op.create_foreign_key( + constraint_name="webhook_oauth_token_id_fkey", + source_table="webhook", + referent_table="oauthtoken", + local_cols=["oauth_token_id"], + remote_cols=["id"], + ondelete="CASCADE") + + +def downgrade(): + op.drop_constraint( + constraint_name="redirect_new_repo_id_fkey", + table_name="redirect", + type_="foreignkey") + op.create_foreign_key( + constraint_name="redirect_new_repo_id_fkey", + source_table="redirect", + referent_table="repository", + local_cols=["new_repo_id"], + remote_cols=["id"]) + op.drop_constraint( + constraint_name="access_repo_id_fkey", + table_name="access", + type_="foreignkey") + op.create_foreign_key( + constraint_name="access_repo_id_fkey", + source_table="access", + referent_table="repository", + local_cols=["repo_id"], + remote_cols=["id"]) + op.drop_constraint( + constraint_name="webhook_repo_id_fkey", + table_name="webhook", + type_="foreignkey") + op.create_foreign_key( + constraint_name="webhook_repo_id_fkey", + source_table="webhook", + referent_table="repository", + local_cols=["repo_id"], + remote_cols=["id"]) -- cgit v1.2.3