Commit
This commit is contained in:
43
old/migrate_interactable_cooldowns.py
Normal file
43
old/migrate_interactable_cooldowns.py
Normal file
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Migration script to update interactable_cooldowns table schema.
|
||||
Changes from single instance_id to instance_id + action_id composite key.
|
||||
"""
|
||||
import asyncio
|
||||
from api.database import engine
|
||||
from sqlalchemy import text
|
||||
|
||||
|
||||
async def migrate():
|
||||
"""Drop and recreate interactable_cooldowns table with new schema."""
|
||||
async with engine.begin() as conn:
|
||||
print("🔄 Migrating interactable_cooldowns table...")
|
||||
|
||||
# Drop old table
|
||||
await conn.execute(text("DROP TABLE IF EXISTS interactable_cooldowns CASCADE"))
|
||||
print("✅ Dropped old interactable_cooldowns table")
|
||||
|
||||
# Create new table with updated schema
|
||||
await conn.execute(text("""
|
||||
CREATE TABLE interactable_cooldowns (
|
||||
id SERIAL PRIMARY KEY,
|
||||
interactable_instance_id VARCHAR NOT NULL,
|
||||
action_id VARCHAR NOT NULL,
|
||||
expiry_timestamp DOUBLE PRECISION NOT NULL,
|
||||
CONSTRAINT uix_interactable_action UNIQUE (interactable_instance_id, action_id)
|
||||
)
|
||||
"""))
|
||||
print("✅ Created new interactable_cooldowns table with per-action cooldowns")
|
||||
|
||||
# Create index for faster lookups
|
||||
await conn.execute(text("""
|
||||
CREATE INDEX IF NOT EXISTS idx_interactable_cooldowns_expiry
|
||||
ON interactable_cooldowns(expiry_timestamp)
|
||||
"""))
|
||||
print("✅ Created index on expiry_timestamp")
|
||||
|
||||
print("✨ Migration complete!")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(migrate())
|
||||
Reference in New Issue
Block a user