You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Follow-up 2 of #524 (see also #518). Builds on #525 — reuses the same prune/tear-down flow.
Databases dropped outside the app are currently invisible: drivers stringify every error, so a missing database is indistinguishable from a typo, and the health check keeps passing.
Scope:
Add a structured "database not found" error classification in the drivers: MySQL errno 1049/1046, Postgres SQLSTATE 3D000, SQLite unable-to-open. Query/metadata failures with this classification trigger the same flow as React to DROP DATABASE executed inside the app #525 (prune one database from a multi-db selection, or tear down a single-db session).
Make the health check able to see it:
MySQL pings with COM_PING, which keeps succeeding after the current database is dropped — the ping should touch the current database instead.
SQLite pings through the still-open file handle — the ping should check the file still exists.
The health check must distinguish "server unreachable" (tear down the connection) from "one database missing" (prune just that one), instead of tearing everything down after two failed pings.
"Disconnected" means the session, not the saved connection: if the database is recreated later, the saved connection must work again unchanged.
Follow-up 2 of #524 (see also #518). Builds on #525 — reuses the same prune/tear-down flow.
Databases dropped outside the app are currently invisible: drivers stringify every error, so a missing database is indistinguishable from a typo, and the health check keeps passing.
Scope:
"Disconnected" means the session, not the saved connection: if the database is recreated later, the saved connection must work again unchanged.