masina-dock/backend/migrate_db.py

40 lines
1.2 KiB
Python

import sqlite3
import os
def migrate_database():
db_path = '/app/data/masina_dock.db'
if not os.path.exists(db_path):
print("Database does not exist. Will be created on first run.")
return
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
try:
cursor.execute("PRAGMA table_info(user)")
columns = [column[1] for column in cursor.fetchall()]
if 'language' not in columns:
print("Adding language column...")
cursor.execute("ALTER TABLE user ADD COLUMN language VARCHAR(5) DEFAULT 'en'")
if 'unit_system' not in columns:
print("Adding unit_system column...")
cursor.execute("ALTER TABLE user ADD COLUMN unit_system VARCHAR(20) DEFAULT 'metric'")
if 'currency' not in columns:
print("Adding currency column...")
cursor.execute("ALTER TABLE user ADD COLUMN currency VARCHAR(10) DEFAULT 'USD'")
conn.commit()
print("Database migration completed successfully!")
except Exception as e:
print(f"Migration error: {e}")
conn.rollback()
finally:
conn.close()
if __name__ == '__main__':
migrate_database()