diff --git a/db/connection.py b/db/connection.py index cf1bacc..20e7752 100644 --- a/db/connection.py +++ b/db/connection.py @@ -77,13 +77,10 @@ def init_schema(): stmt = '\n'.join(lines).strip() if stmt: cur.execute(stmt) - conn.commit() - # Soft migrations for existing databases - with pool.connection() as conn: - with conn.cursor() as cur: - cur.execute( - "ALTER TABLE users ADD COLUMN IF NOT EXISTS xui_email TEXT" - ) + + # Soft migrations: CREATE TABLE IF NOT EXISTS does not add new columns + # to existing tables, so alter after base schema is applied. + cur.execute("ALTER TABLE users ADD COLUMN IF NOT EXISTS xui_email TEXT") cur.execute( "CREATE INDEX IF NOT EXISTS idx_users_xui_email ON users(xui_email)" ) diff --git a/db/schema.sql b/db/schema.sql index 2cdacfe..853a582 100644 --- a/db/schema.sql +++ b/db/schema.sql @@ -35,8 +35,6 @@ CREATE TABLE IF NOT EXISTS users ( share_password_hash TEXT ); -CREATE INDEX IF NOT EXISTS idx_users_xui_email ON users(xui_email); - CREATE TABLE IF NOT EXISTS user_connections ( id UUID PRIMARY KEY, user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,