refakotorálás előtti állapot
This commit is contained in:
52
backend/app/workers/py_to_database.py
Normal file
52
backend/app/workers/py_to_database.py
Normal file
@@ -0,0 +1,52 @@
|
||||
# /opt/docker/dev/service_finder/backend/app/workers/py_to_database.py
|
||||
import asyncio
|
||||
import importlib
|
||||
import os
|
||||
import sys
|
||||
from sqlalchemy import text
|
||||
from app.database import engine, Base
|
||||
|
||||
# Biztosítjuk, hogy a Python látja az /app mappát
|
||||
sys.path.append("/app")
|
||||
|
||||
async def sync_database():
|
||||
print("\n" + "═"*60)
|
||||
print("🚀 SENTINEL DATABASE SYNC - MB2.0")
|
||||
print("═"*60)
|
||||
|
||||
# 1. Sémák kényszerítése (hogy ne ezen bukjon el)
|
||||
async with engine.begin() as conn:
|
||||
for schema in ["data", "identity", "system", "audit"]:
|
||||
await conn.execute(text(f"CREATE SCHEMA IF NOT EXISTS {schema}"))
|
||||
print("✅ Sémák ellenőrizve.")
|
||||
|
||||
# 2. Modellek importálása (Szabályos úton)
|
||||
# A diagnózis alapján ezek a fájlok biztosan ott vannak
|
||||
model_modules = [
|
||||
"address", "audit", "document", "history", "legal", "organization",
|
||||
"security", "social", "system", "vehicle_definitions", "asset",
|
||||
"core_logic", "gamification", "identity", "logistics", "payment",
|
||||
"service", "staged_data", "translation"
|
||||
]
|
||||
|
||||
print(f"📂 Modellek betöltése...")
|
||||
for m in model_modules:
|
||||
try:
|
||||
# Ez a módszer regisztrálja a modult a sys.modules-ba
|
||||
importlib.import_module(f"app.models.{m}")
|
||||
print(f" 📦 [OK] app.models.{m}")
|
||||
except Exception as e:
|
||||
print(f" ⚠️ [INFO] app.models.{m} betöltése (vagy függősége) kihagyva: {e}")
|
||||
|
||||
# 3. Fizikai szinkronizáció
|
||||
print(f"\n🏗️ Táblák létrehozása (Összesen: {len(Base.metadata.tables)} darab)...")
|
||||
async with engine.begin() as conn:
|
||||
# Ez a parancs hozza létre az összes hiányzó táblát
|
||||
await conn.run_sync(Base.metadata.create_all)
|
||||
|
||||
print("\n" + "═"*60)
|
||||
print("✅ KÉSZ! Az adatbázis most már tartalmazza a System és Translation táblákat is.")
|
||||
print("═"*60)
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(sync_database())
|
||||
Reference in New Issue
Block a user