fix: avoid creating/initializing databases during user discovery
get_all_user_ids now checks if DB file exists before calling get_session_for_user. This prevents get_engine_for_user from triggering init_user_database and creating tables for stale workspace folders. Without this fix, a read-only ID scan creates/initializes SQLite databases and default tables as a side effect, which can silently create fresh DBs for stale workspace folders and hide missing/corrupt-database states that discovery previously surfaced.
This commit is contained in:
@@ -106,6 +106,13 @@ def get_all_user_ids() -> List[str]:
|
|||||||
canonical_user_id = workspace_id
|
canonical_user_id = workspace_id
|
||||||
db = None
|
db = None
|
||||||
try:
|
try:
|
||||||
|
# Check if DB file exists before opening session to avoid creating/initializing DBs
|
||||||
|
db_path = get_user_db_path(workspace_id)
|
||||||
|
if not os.path.exists(db_path):
|
||||||
|
# No DB file exists, use workspace ID as fallback
|
||||||
|
canonical_user_id = workspace_id
|
||||||
|
else:
|
||||||
|
# DB file exists, try to resolve canonical user_id from DB
|
||||||
db = get_session_for_user(workspace_id)
|
db = get_session_for_user(workspace_id)
|
||||||
if db:
|
if db:
|
||||||
onboarding_row = (
|
onboarding_row = (
|
||||||
|
|||||||
Reference in New Issue
Block a user