44 lines
1.5 KiB
Python
44 lines
1.5 KiB
Python
import sys
|
|
import os
|
|
|
|
# Pfade so setzen, dass das Backend gefunden wird
|
|
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../..')))
|
|
|
|
from backend.database import SessionLocal, engine
|
|
from sqlalchemy import text
|
|
|
|
def migrate():
|
|
print("🚀 Starting Migration: Adding 'campaign_tag' to MarketingMatrix...")
|
|
|
|
conn = engine.connect()
|
|
|
|
try:
|
|
# 1. Prüfen, ob Spalte schon existiert
|
|
# SQLite Pragma: table_info(marketing_matrix)
|
|
result = conn.execute(text("PRAGMA table_info(marketing_matrix)")).fetchall()
|
|
columns = [row[1] for row in result]
|
|
|
|
if "campaign_tag" in columns:
|
|
print("✅ Column 'campaign_tag' already exists. Skipping.")
|
|
return
|
|
|
|
# 2. Spalte hinzufügen (SQLite supports simple ADD COLUMN)
|
|
print("Adding column 'campaign_tag' (DEFAULT 'standard')...")
|
|
conn.execute(text("ALTER TABLE marketing_matrix ADD COLUMN campaign_tag VARCHAR DEFAULT 'standard'"))
|
|
|
|
# 3. Index erstellen (Optional, aber gut für Performance)
|
|
print("Creating index on 'campaign_tag'...")
|
|
conn.execute(text("CREATE INDEX ix_marketing_matrix_campaign_tag ON marketing_matrix (campaign_tag)"))
|
|
|
|
conn.commit()
|
|
print("✅ Migration successful!")
|
|
|
|
except Exception as e:
|
|
print(f"❌ Migration failed: {e}")
|
|
conn.rollback()
|
|
finally:
|
|
conn.close()
|
|
|
|
if __name__ == "__main__":
|
|
migrate()
|