WIP
This commit is contained in:
73
run_migration.py
Normal file
73
run_migration.py
Normal file
@@ -0,0 +1,73 @@
|
||||
"""Run database migration for training_status fields."""
|
||||
import psycopg2
|
||||
import os
|
||||
|
||||
# Read password from .env file
|
||||
password = ""
|
||||
try:
|
||||
with open(".env") as f:
|
||||
for line in f:
|
||||
if line.startswith("DB_PASSWORD="):
|
||||
password = line.strip().split("=", 1)[1].strip('"').strip("'")
|
||||
break
|
||||
except Exception as e:
|
||||
print(f"Error reading .env: {e}")
|
||||
|
||||
print(f"Password found: {bool(password)}")
|
||||
|
||||
conn = psycopg2.connect(
|
||||
host="192.168.68.31",
|
||||
port=5432,
|
||||
database="docmaster",
|
||||
user="docmaster",
|
||||
password=password
|
||||
)
|
||||
conn.autocommit = True
|
||||
cur = conn.cursor()
|
||||
|
||||
# Add training_status column
|
||||
try:
|
||||
cur.execute("ALTER TABLE training_datasets ADD COLUMN training_status VARCHAR(20) DEFAULT NULL")
|
||||
print("Added training_status column")
|
||||
except Exception as e:
|
||||
print(f"training_status: {e}")
|
||||
|
||||
# Add active_training_task_id column
|
||||
try:
|
||||
cur.execute("ALTER TABLE training_datasets ADD COLUMN active_training_task_id UUID DEFAULT NULL")
|
||||
print("Added active_training_task_id column")
|
||||
except Exception as e:
|
||||
print(f"active_training_task_id: {e}")
|
||||
|
||||
# Create indexes
|
||||
try:
|
||||
cur.execute("CREATE INDEX IF NOT EXISTS idx_training_datasets_training_status ON training_datasets(training_status)")
|
||||
print("Created training_status index")
|
||||
except Exception as e:
|
||||
print(f"index training_status: {e}")
|
||||
|
||||
try:
|
||||
cur.execute("CREATE INDEX IF NOT EXISTS idx_training_datasets_active_training_task_id ON training_datasets(active_training_task_id)")
|
||||
print("Created active_training_task_id index")
|
||||
except Exception as e:
|
||||
print(f"index active_training_task_id: {e}")
|
||||
|
||||
# Update existing datasets that have been used in completed training tasks to trained status
|
||||
try:
|
||||
cur.execute("""
|
||||
UPDATE training_datasets d
|
||||
SET status = 'trained'
|
||||
WHERE d.status = 'ready'
|
||||
AND EXISTS (
|
||||
SELECT 1 FROM training_tasks t
|
||||
WHERE t.dataset_id = d.dataset_id
|
||||
AND t.status = 'completed'
|
||||
)
|
||||
""")
|
||||
print(f"Updated {cur.rowcount} datasets to trained status")
|
||||
except Exception as e:
|
||||
print(f"update status: {e}")
|
||||
|
||||
cur.close()
|
||||
conn.close()
|
||||
print("Migration complete!")
|
||||
Reference in New Issue
Block a user