~edwargix/git.sr.ht

be8e0e435c7939d554f655226220281e01fc0a5c — Drew DeVault 4 years ago 2ce254f
Add cascade to webhook foreign keys
A gitsrht/alembic/versions/c167cf8a1271_add_constraints_to_core_sr_ht_webhook_.py => gitsrht/alembic/versions/c167cf8a1271_add_constraints_to_core_sr_ht_webhook_.py +83 -0
@@ 0,0 1,83 @@
"""Add constraints to core.sr.ht webhook tables

Revision ID: c167cf8a1271
Revises: 8fbeb080c434
Create Date: 2020-09-07 13:33:55.440129

"""

# revision identifiers, used by Alembic.
revision = 'c167cf8a1271'
down_revision = '8fbeb080c434'

from alembic import op
import sqlalchemy as sa


def upgrade():
    op.drop_constraint(
            constraint_name="repo_webhook_subscription_repo_id_fkey",
            table_name="repo_webhook_subscription",
            type_="foreignkey")
    op.create_foreign_key(
            constraint_name="repo_webhook_subscription_repo_id_fkey",
            source_table="repo_webhook_subscription",
            referent_table="repository",
            local_cols=["repo_id"],
            remote_cols=["id"],
            ondelete="CASCADE")
    op.drop_constraint(
            constraint_name="repo_webhook_subscription_token_id_fkey",
            table_name="repo_webhook_subscription",
            type_="foreignkey")
    op.create_foreign_key(
            constraint_name="repo_webhook_subscription_token_id_fkey",
            source_table="repo_webhook_subscription",
            referent_table="oauthtoken",
            local_cols=["token_id"],
            remote_cols=["id"],
            ondelete="CASCADE")
    op.drop_constraint(
            constraint_name="repo_webhook_subscription_user_id_fkey",
            table_name="repo_webhook_subscription",
            type_="foreignkey")
    op.create_foreign_key(
            constraint_name="repo_webhook_subscription_user_id_fkey",
            source_table="repo_webhook_subscription",
            referent_table="user",
            local_cols=["user_id"],
            remote_cols=["id"],
            ondelete="CASCADE")


def downgrade():
    op.drop_constraint(
            constraint_name="repo_webhook_subscription_repo_id_fkey",
            table_name="repo_webhook_subscription",
            type_="foreignkey")
    op.create_foreign_key(
            constraint_name="repo_webhook_subscription_repo_id_fkey",
            source_table="repo_webhook_subscription",
            referent_table="repository",
            local_cols=["repo_id"],
            remote_cols=["id"])
    op.drop_constraint(
            constraint_name="repo_webhook_subscription_token_id_fkey",
            table_name="repo_webhook_subscription",
            type_="foreignkey")
    op.create_foreign_key(
            constraint_name="repo_webhook_subscription_token_id_fkey",
            source_table="repo_webhook_subscription",
            referent_table="oauthtoken",
            local_cols=["token_id"],
            remote_cols=["id"])
    op.drop_constraint(
            constraint_name="repo_webhook_subscription_user_id_fkey",
            table_name="repo_webhook_subscription",
            type_="foreignkey")
    op.create_foreign_key(
            constraint_name="repo_webhook_subscription_user_id_fkey",
            source_table="repo_webhook_subscription",
            referent_table="user",
            local_cols=["user_id"],
            remote_cols=["id"])

M gitsrht/webhooks.py => gitsrht/webhooks.py +1 -1
@@ 24,5 24,5 @@ class RepoWebhook(CeleryWebhook):
    """

    repo_id = sa.Column(sa.Integer,
            sa.ForeignKey('repository.id'), nullable=False)
            sa.ForeignKey('repository.id', ondelete="CASCADE"), nullable=False)
    repo = sa.orm.relationship('Repository')