- db.py: auto-migrate missing columns (signal_correct, pnl_dkk, etc.) on existing SQLite DBs - db.py: print warning to stderr if DATABASE_URL not set - dashboard.py: call init_schema() at startup so columns always exist
psycopg2 raises TypeError if params=None is passed to cur.execute() sqlite3 raises ProgrammingError on unsupported parameter type