Remove foreign key conflicts
This commit is contained in:
parent
e18ce186da
commit
90eaf097bb
|
@ -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
|
Loading…
Reference in New Issue