Remove foreign key conflicts

This commit is contained in:
coolneng 2021-02-11 18:49:22 +01:00
parent e18ce186da
commit 90eaf097bb
Signed by: coolneng
GPG Key ID: 9893DA236405AF57
1 changed files with 52 additions and 0 deletions

View File

@ -0,0 +1,52 @@
"""resolve foreign key conflicts
Revision ID: f6ec7393c858
Revises: e35936e392dd
Create Date: 2021-02-10 17:31:22.145457
"""
import sqlalchemy as sa
from alembic import op
# revision identifiers, used by Alembic.
revision = "f6ec7393c858"
down_revision = "e443e876bf33"
branch_labels = None
depends_on = None
def upgrade():
foreign_keys = {
"users": "city_id",
"games": "sports_id",
"venues": "user_id",
"venue_images": "user_id",
}
for table, field in foreign_keys.items():
if table == "venues" or table == "venue_images":
query = f"UPDATE {table} SET {field} = 1976 WHERE {field} = 0"
else:
query = f"UPDATE {table} SET {field} = 1 WHERE {field} = 0"
op.execute(query)
game_id_tables = [
"player_availabilities",
"teams",
"user_ratings",
"purchase_games",
"payments",
"player_cancel_games",
]
venue_id_tables = [
"venue_images",
"games",
]
for table in game_id_tables:
query = f"DELETE FROM {table} WHERE game_id NOT IN (SELECT id from games)"
op.execute(query)
for table in venue_id_tables:
query = f"DELETE FROM {table} WHERE venue_id NOT IN (SELECT id from venues)"
op.execute(query)
def downgrade():
pass