Files
echoes-of-the-ash/migrations/migrate_unique_items.py
2025-11-07 15:27:13 +01:00

59 lines
2.0 KiB
Python

"""
Migration: Add unique item properties to dropped_items table
This migration adds durability, max_durability, tier, and unique_stats columns
to the dropped_items table so that dropped equipment items preserve their state.
"""
import asyncio
from api.database import DatabaseSession, engine, metadata
from sqlalchemy import text
async def migrate():
"""Add unique item columns to dropped_items"""
async with DatabaseSession() as session:
print("Starting migration: Add unique item properties to dropped_items...")
# Add durability column
try:
await session.execute(text(
"ALTER TABLE dropped_items ADD COLUMN durability INTEGER"
))
print("✓ Added durability column")
except Exception as e:
print(f"✗ durability column may already exist: {e}")
# Add max_durability column
try:
await session.execute(text(
"ALTER TABLE dropped_items ADD COLUMN max_durability INTEGER"
))
print("✓ Added max_durability column")
except Exception as e:
print(f"✗ max_durability column may already exist: {e}")
# Add tier column
try:
await session.execute(text(
"ALTER TABLE dropped_items ADD COLUMN tier INTEGER DEFAULT 1"
))
print("✓ Added tier column")
except Exception as e:
print(f"✗ tier column may already exist: {e}")
# Add unique_stats JSONB column
try:
await session.execute(text(
"ALTER TABLE dropped_items ADD COLUMN unique_stats JSONB"
))
print("✓ Added unique_stats column")
except Exception as e:
print(f"✗ unique_stats column may already exist: {e}")
await session.commit()
print("\n✓ Migration completed successfully!")
if __name__ == "__main__":
asyncio.run(migrate())