# fix_database.py (updated version) import os import duckdb from config import config def fix_database(): """Completely reset the database with correct schema""" # Remove the existing database file completely if os.path.exists(config.DATABASE_PATH): os.remove(config.DATABASE_PATH) print("Removed existing database file") # Create directory if it doesn't exist os.makedirs(os.path.dirname(config.DATABASE_PATH), exist_ok=True) # Initialize with correct schema conn = duckdb.connect(config.DATABASE_PATH) # Create sequence for auto-incrementing IDs conn.execute("CREATE SEQUENCE motions_id_seq START 1") # Create motions table with sequence-based auto-increment conn.execute(""" CREATE TABLE motions ( id INTEGER DEFAULT nextval('motions_id_seq'), title TEXT NOT NULL, description TEXT, date DATE, policy_area TEXT, voting_results JSON, winning_margin FLOAT, controversy_score FLOAT, layman_explanation TEXT, url TEXT UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id) ) """) conn.execute(""" CREATE TABLE user_sessions ( session_id TEXT PRIMARY KEY, user_votes JSON, completed_motions INTEGER DEFAULT 0, total_motions INTEGER DEFAULT 10, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) """) conn.execute(""" CREATE TABLE party_results ( session_id TEXT, party_name TEXT, agreement_percentage FLOAT, agreed_motions JSON, disagreed_motions JSON, PRIMARY KEY (session_id, party_name) ) """) conn.close() print("Database recreated with correct schema using sequences") if __name__ == "__main__": fix_database()