fix: simplify database migration for pre-production

Remove complex table recreation logic since the server hasn't been
deployed yet. For existing databases, simply delete and recreate.

The dev database is already recreated on startup by design.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-02 07:23:58 -05:00
parent a414ce3597
commit 3535746eb7

View File

@@ -289,9 +289,8 @@ def _migrate_schema(cursor: sqlite3.Cursor) -> None:
""" """
Migrate existing database schema to latest version. Migrate existing database schema to latest version.
Note: Cannot add CHECK constraints to existing columns via ALTER TABLE. Note: For pre-production databases, simply delete and recreate.
The "downloading_data" status in jobs table requires a fresh database This migration is only for preserving data during development.
or manual migration if upgrading from an older schema version.
""" """
# Check if positions table exists and has simulation_run_id column # Check if positions table exists and has simulation_run_id column
cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='positions'") cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='positions'")
@@ -300,23 +299,10 @@ def _migrate_schema(cursor: sqlite3.Cursor) -> None:
columns = [row[1] for row in cursor.fetchall()] columns = [row[1] for row in cursor.fetchall()]
if 'simulation_run_id' not in columns: if 'simulation_run_id' not in columns:
# Add simulation_run_id column to existing positions table
cursor.execute(""" cursor.execute("""
ALTER TABLE positions ADD COLUMN simulation_run_id TEXT ALTER TABLE positions ADD COLUMN simulation_run_id TEXT
""") """)
# Check if jobs table exists and has warnings column
cursor.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='jobs'")
if cursor.fetchone():
cursor.execute("PRAGMA table_info(jobs)")
columns = [row[1] for row in cursor.fetchall()]
if 'warnings' not in columns:
# Add warnings column to existing jobs table
cursor.execute("""
ALTER TABLE jobs ADD COLUMN warnings TEXT
""")
def _create_indexes(cursor: sqlite3.Cursor) -> None: def _create_indexes(cursor: sqlite3.Cursor) -> None:
"""Create database indexes for query performance.""" """Create database indexes for query performance."""