Minor adjustment of recorder migration (#122020)

This commit is contained in:
Erik Montnemery 2024-07-16 14:20:23 +02:00 committed by GitHub
parent 62cc868150
commit dbe68ca057
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -546,9 +546,12 @@ def _update_states_table_with_foreign_key_options(
) -> None: ) -> None:
"""Add the options to foreign key constraints.""" """Add the options to foreign key constraints."""
inspector = sqlalchemy.inspect(engine) inspector = sqlalchemy.inspect(engine)
tmp_states_table = Table(TABLE_STATES, MetaData())
alters = [ alters = [
{ {
"old_fk": ForeignKeyConstraint((), (), name=foreign_key["name"]), "old_fk": ForeignKeyConstraint(
(), (), name=foreign_key["name"], table=tmp_states_table
),
"columns": foreign_key["constrained_columns"], "columns": foreign_key["constrained_columns"],
} }
for foreign_key in inspector.get_foreign_keys(TABLE_STATES) for foreign_key in inspector.get_foreign_keys(TABLE_STATES)
@ -565,11 +568,6 @@ def _update_states_table_with_foreign_key_options(
return return
states_key_constraints = Base.metadata.tables[TABLE_STATES].foreign_key_constraints states_key_constraints = Base.metadata.tables[TABLE_STATES].foreign_key_constraints
old_states_table = Table( # noqa: F841
TABLE_STATES,
MetaData(),
*(alter["old_fk"] for alter in alters), # type: ignore[arg-type]
)
for alter in alters: for alter in alters:
with session_scope(session=session_maker()) as session: with session_scope(session=session_maker()) as session:
@ -595,15 +593,15 @@ def _drop_foreign_key_constraints(
for foreign_key in inspector.get_foreign_keys(table) for foreign_key in inspector.get_foreign_keys(table)
if foreign_key["name"] and foreign_key["constrained_columns"] == [column] if foreign_key["name"] and foreign_key["constrained_columns"] == [column]
] ]
## Bind the ForeignKeyConstraints to the table
tmp_table = Table(table, MetaData())
drops = [ drops = [
ForeignKeyConstraint((), (), name=foreign_key["name"]) ForeignKeyConstraint((), (), name=foreign_key["name"], table=tmp_table)
for foreign_key in inspector.get_foreign_keys(table) for foreign_key in inspector.get_foreign_keys(table)
if foreign_key["name"] and foreign_key["constrained_columns"] == [column] if foreign_key["name"] and foreign_key["constrained_columns"] == [column]
] ]
# Bind the ForeignKeyConstraints to the table
old_table = Table(table, MetaData(), *drops) # noqa: F841
for drop in drops: for drop in drops:
with session_scope(session=session_maker()) as session: with session_scope(session=session_maker()) as session:
try: try: