| Server IP : 202.61.199.114 / Your IP : 216.73.217.139 Web Server : nginx/1.22.1 System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64 User : web20 ( 1018) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/clients/client2/arni-solutions.de/web/plate-ai-api/scripts/ |
Upload File : |
#!/usr/bin/env python3
"""Synchronisiert data/regions/de_regions.json in die Tabelle license_plate_regions.
Nutzung: python scripts/import_regions.py
Die JSON bleibt die fuehrende Quelle; die DB-Tabelle dient der Admin-Pflege/Abfrage.
"""
import json
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
from app.config import settings # noqa: E402
from app.database.base import SessionLocal, Base, engine # noqa: E402
from app.database.models import LicensePlateRegion # noqa: E402
def main() -> None:
Base.metadata.create_all(bind=engine)
path = settings.path(settings.regions_de_file)
data = json.loads(Path(path).read_text(encoding="utf-8"))
regions = data.get("regions", {})
db = SessionLocal()
inserted = updated = 0
try:
for code, info in regions.items():
row = (db.query(LicensePlateRegion)
.filter_by(country_code="DE", code=code).first())
if row:
row.name = info.get("name")
row.state = info.get("state")
row.active = True
updated += 1
else:
db.add(LicensePlateRegion(
country_code="DE", code=code,
name=info.get("name"), state=info.get("state"), active=True,
))
inserted += 1
db.commit()
finally:
db.close()
print(f"Regionen importiert: {inserted} neu, {updated} aktualisiert "
f"(gesamt {len(regions)}).")
if __name__ == "__main__":
main()