From e79623bd0b582c104f761099adc4d61abbf5b626 Mon Sep 17 00:00:00 2001 From: Cal Corum Date: Fri, 27 Mar 2026 01:33:57 -0500 Subject: [PATCH] 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 --- app/db_engine.py | 42 ++++++++++++++++-------------------------- 1 file changed, 16 insertions(+), 26 deletions(-) diff --git a/app/db_engine.py b/app/db_engine.py index c1979cf..e2c2c79 100644 --- a/app/db_engine.py +++ b/app/db_engine.py @@ -8,35 +8,25 @@ from typing import Literal, List, Optional from pandas import DataFrame from peewee import * from peewee import ModelSelect +from playhouse.pool import PooledPostgresqlDatabase from playhouse.shortcuts import model_to_dict -# Database configuration - supports both SQLite and PostgreSQL -DATABASE_TYPE = os.environ.get('DATABASE_TYPE', 'sqlite') +_postgres_password = os.environ.get('POSTGRES_PASSWORD') +if _postgres_password is None: + raise RuntimeError('POSTGRES_PASSWORD environment variable is required') -if DATABASE_TYPE.lower() == 'postgresql': - from playhouse.pool import PooledPostgresqlDatabase - db = PooledPostgresqlDatabase( - os.environ.get('POSTGRES_DB', 'sba_master'), - user=os.environ.get('POSTGRES_USER', 'sba_admin'), - password=os.environ.get('POSTGRES_PASSWORD', 'sba_dev_password_2024'), - host=os.environ.get('POSTGRES_HOST', 'sba_postgres'), - port=int(os.environ.get('POSTGRES_PORT', '5432')), - max_connections=20, - stale_timeout=300, # 5 minutes - timeout=0, - autoconnect=True, - 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 - } - ) +db = PooledPostgresqlDatabase( + os.environ.get('POSTGRES_DB', 'sba_master'), + user=os.environ.get('POSTGRES_USER', 'sba_admin'), + password=_postgres_password, + host=os.environ.get('POSTGRES_HOST', 'sba_postgres'), + port=int(os.environ.get('POSTGRES_PORT', '5432')), + max_connections=20, + stale_timeout=300, # 5 minutes + timeout=0, + autoconnect=True, + autorollback=True # Automatically rollback failed transactions +) date = f'{datetime.datetime.now().year}-{datetime.datetime.now().month}-{datetime.datetime.now().day}' logger = logging.getLogger('discord_app') -- 2.25.1