31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
import asyncio
|
|
import os
|
|
from sqlalchemy import text
|
|
from app.core.database.session import SessionLocal
|
|
|
|
async def migrate():
|
|
print("Starting migration: adding 'type' and 'recipe' to 'capabilities' table...")
|
|
async with SessionLocal() as session:
|
|
try:
|
|
# 1. Add type column if it doesn't exist
|
|
await session.execute(text(
|
|
"ALTER TABLE capabilities ADD COLUMN IF NOT EXISTS type VARCHAR(50) DEFAULT 'ATOMIC';"
|
|
))
|
|
# 2. Add recipe column if it doesn't exist
|
|
await session.execute(text(
|
|
"ALTER TABLE capabilities ADD COLUMN IF NOT EXISTS recipe JSONB;"
|
|
))
|
|
# 3. Make action_id nullable
|
|
await session.execute(text(
|
|
"ALTER TABLE capabilities ALTER COLUMN action_id DROP NOT NULL;"
|
|
))
|
|
|
|
await session.commit()
|
|
print("Migration completed successfully!")
|
|
except Exception as e:
|
|
await session.rollback()
|
|
print(f"Migration failed: {e}")
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(migrate())
|