Files
aitbc/scripts/fix_database_persistence.py
oib 6bcbe76c7d feat: switch to persistent SQLite database and improve GPU booking/release handling
- Change database from in-memory to file-based SQLite at aitbc_coordinator.db
- Add status="active" to GPU booking creation
- Allow GPU release even when not properly booked (cleanup case)
- Add error handling for missing booking attributes during refund calculation
- Fix get_gpu_reviews query to use scalars() for proper result handling
2026-03-07 12:23:01 +01:00

47 lines
1.3 KiB
Python

#!/usr/bin/env python3
"""
Fix database persistence by switching to persistent SQLite
"""
import sys
import os
sys.path.insert(0, '/home/oib/windsurf/aitbc/apps/coordinator-api/src')
def fix_database_persistence():
"""Switch from in-memory to persistent SQLite database"""
print("=== FIXING DATABASE PERSISTENCE ===")
database_file = "/home/oib/windsurf/aitbc/apps/coordinator-api/aitbc_coordinator.db"
# Read current database.py
db_file = "/home/oib/windsurf/aitbc/apps/coordinator-api/src/app/database.py"
with open(db_file, 'r') as f:
content = f.read()
# Replace in-memory SQLite with persistent file
new_content = content.replace(
'"sqlite:///:memory:"',
f'"sqlite:///{database_file}"'
)
# Write back the fixed content
with open(db_file, 'w') as f:
f.write(new_content)
print(f"✅ Database switched to persistent file: {database_file}")
# Remove existing database file if it exists
if os.path.exists(database_file):
os.remove(database_file)
print(f"🗑️ Removed old database file")
return True
if __name__ == "__main__":
if fix_database_persistence():
print("🎉 Database persistence fix completed!")
else:
print("❌ Database persistence fix failed!")
sys.exit(1)