fix: remove SQLite fallback code from db_engine.py (#70)

Removes DATABASE_TYPE conditional entirely. PostgreSQL is now the only
supported backend. Moves PooledPostgresqlDatabase import to top-level
and raises RuntimeError at startup if POSTGRES_PASSWORD is unset,
preventing silent misconnection with misleading errors.

Closes #70

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Cal Corum 2026-03-27 01:33:57 -05:00
parent 0ee7367bc0
commit eb886a4690

View File

@ -8,13 +8,8 @@ from typing import Literal, List, Optional
from pandas import DataFrame from pandas import DataFrame
from peewee import * from peewee import *
from peewee import ModelSelect from peewee import ModelSelect
from playhouse.shortcuts import model_to_dict
# Database configuration - supports both SQLite and PostgreSQL
DATABASE_TYPE = os.environ.get("DATABASE_TYPE", "sqlite")
if DATABASE_TYPE.lower() == "postgresql":
from playhouse.pool import PooledPostgresqlDatabase from playhouse.pool import PooledPostgresqlDatabase
from playhouse.shortcuts import model_to_dict
_postgres_password = os.environ.get("POSTGRES_PASSWORD") _postgres_password = os.environ.get("POSTGRES_PASSWORD")
if _postgres_password is None: if _postgres_password is None:
@ -22,6 +17,7 @@ if DATABASE_TYPE.lower() == "postgresql":
"POSTGRES_PASSWORD environment variable is not set. " "POSTGRES_PASSWORD environment variable is not set. "
"This variable is required when DATABASE_TYPE=postgresql." "This variable is required when DATABASE_TYPE=postgresql."
) )
db = PooledPostgresqlDatabase( db = PooledPostgresqlDatabase(
os.environ.get("POSTGRES_DB", "sba_master"), os.environ.get("POSTGRES_DB", "sba_master"),
user=os.environ.get("POSTGRES_USER", "sba_admin"), user=os.environ.get("POSTGRES_USER", "sba_admin"),
@ -34,12 +30,6 @@ if DATABASE_TYPE.lower() == "postgresql":
autoconnect=False, autoconnect=False,
autorollback=True, # Automatically rollback failed transactions autorollback=True, # Automatically rollback failed transactions
) )
else:
# Default SQLite configuration
db = SqliteDatabase(
"storage/sba_master.db",
pragmas={"journal_mode": "wal", "cache_size": -1 * 64000, "synchronous": 0},
)
date = f"{datetime.datetime.now().year}-{datetime.datetime.now().month}-{datetime.datetime.now().day}" date = f"{datetime.datetime.now().year}-{datetime.datetime.now().month}-{datetime.datetime.now().day}"
logger = logging.getLogger("discord_app") logger = logging.getLogger("discord_app")