refaktorálás javításai

This commit is contained in:
Roo
2026-03-13 10:22:41 +00:00
parent 2d8d23f469
commit f53e0b53df
140 changed files with 7316 additions and 4579 deletions

View File

@@ -32,46 +32,20 @@ def include_object(object, name, type_, reflected, compare_to):
"""
🔥 MB 2.0 BIZTONSÁGI SZŰRŐ ÉS WHITELIST 🔥
Ez a rész felel azért, hogy ne töröljünk véletlenül semmit.
Engedjük át minden táblát, ami a 7 domain sémánkba tartozik (identity, finance, data, audit, system, vehicle, reference).
Csak a PostGIS belső táblákat zárjuk ki.
"""
# 1. PostGIS és Alembic belső táblák védelme
# 1. PostGIS belső táblák védelme (ne hozza létre/ne törölje az autogenerate)
excluded_tables = [
"spatial_ref_sys", "alembic_version",
"geography_columns", "geometry_columns",
"spatial_ref_sys",
"geography_columns", "geometry_columns",
"raster_columns", "raster_overviews"
]
if type_ == "table" and name in excluded_tables:
return False
# 2. 🔥 BIZTONSÁGI FÉK (Safety Guard) 🔥
# Ha bent van a DB-ben (reflected), de nincs a kódban (compare_to is None)
# -> TILOS TÖRÖLNI! Megvédi a manuálisan létrehozott táblákat.
if reflected and compare_to is None:
return False
# 3. Engedélyezett sémák listája (Whitelist)
allowed_schemas = ["identity", "data", "system", "public"]
# 4. Séma szintű engedélyezés (pl. séma létrehozásához)
if type_ == "schema":
return name in allowed_schemas
# 5. Objektum séma ellenőrzése
obj_schema = getattr(object, "schema", None)
if obj_schema is None and hasattr(object, "table"):
obj_schema = getattr(object.table, "schema", None)
# Ha a séma benne van a whitelistben, engedélyezzük a módosítást
if obj_schema:
return obj_schema in allowed_schemas
# 6. Fallback a public sémára (pl. globális típusok, Enum-ok számára)
# Csak akkor engedjük, ha explicit public, vagy ha nincs jelölve, de nem tiltott.
if obj_schema is None or obj_schema == "public":
return True
# 7. 🔥 SZIGORÚ ZÁRÁS 🔥
# Minden mást (pl. idegen sémák) kizárunk a migrációból.
return False
# 2. Engedjük át minden más táblát (beleértve az alembic_version-t is, hogy az alembic kezelhesse)
return True
def do_run_migrations(connection):
""" Migrációk futtatása közös konfigurációval. """