Skip to content

Commit af86d1e

Browse files
committed
Bugfix ensure the value of data_loaded is kept
This ensures that if there is an old structured schema_migration table the value of data_loaded is copied over to the new structured table.
1 parent e9bf608 commit af86d1e

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/quart_db/_migration.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,10 +122,13 @@ async def ensure_state_table(backend: BackendABC, state_table_name: str) -> None
122122

123123
# This is required to migrate previous state version tables
124124
try:
125-
version = await connection.fetch_val(f"SELECT version FROM {state_table_name}")
125+
result = await connection.fetch_one(f"SELECT version, data_loaded FROM {state_table_name}")
126126
except Exception: # Either table or column "version" does not exist
127127
version = -1
128+
data_loaded = False
128129
else: # "version" does exist => old table structure
130+
version = result["version"]
131+
data_loaded = result["data_loaded"]
129132
await connection.execute(f"DROP TABLE {state_table_name}")
130133

131134
try:
@@ -141,9 +144,9 @@ async def ensure_state_table(backend: BackendABC, state_table_name: str) -> None
141144
)
142145
await connection.execute(
143146
f"""INSERT INTO {state_table_name} (background, data_loaded, foreground)
144-
VALUES (:version, FALSE, :version)
147+
VALUES (:version, :data_loaded, :version)
145148
ON CONFLICT DO NOTHING""",
146-
{"version": version},
149+
{"version": version, "data_loaded": data_loaded},
147150
)
148151
finally:
149152
await backend._release_migration_connection(connection)

0 commit comments

Comments
 (0)