Files
service-finder/docs/V01_gemini/17_DEVELOPER_NOTES_AND_PITFALLS.md
2026-02-10 21:11:44 +00:00

2.4 KiB

🛠️ DEVELOPER NOTES & TROUBLESHOOTING

1. ADATBÁZIS ÉS SQL FIXEK

Postgres Enum Case Sensitivity

  • Probléma: Az SQLAlchemy Enum típusa és a Postgres Enum típusa ütközhet, ha a Python kódban nagybetűs stringet (USER) küldünk.
  • Megoldás: Mindig használd a .value property-t vagy kényszerítsd a kisbetűs stringet: role="user".

Tábla oszlopok frissítése

  • Probléma: A Base.metadata.create_all nem adja hozzá az új oszlopokat a már meglévő táblákhoz.
  • Megoldás: Új mező esetén (pl. social_provider, mothers_name) manuális ALTER TABLE parancsot kell futtatni vagy Alembic migrációt generálni.

2. BACKEND API HIBÁK

ImportError: create_access_token

  • Ok: A app.core.security modulban hiányzott a funkció, vagy elavult volt az import az endpoints/auth.py-ban.
  • Javítás: A security.py-nak tartalmaznia kell a jose könyvtárat használó tokengenerálást.

Üres Swagger (OpenAPI) felület

  • Ok: Ha az SQLAlchemy Mapper vagy egy Pydantic séma importja hibás, a FastAPI nem tudja legenerálni a dokumentációt.
  • Javítás: Ellenőrizd a docker logs kimenetét indításkor, keresd a MapperConfigurationError vagy ImportError sorokat.

17. Developer Notes & Pitfalls

17.1. SQLAlchemy & Circular Imports

Hiba: InvalidRequestError: Mapper has no property 'organization' Ok: Ha egy modellben definiálsz egy ForeignKey-t, de nem adod hozzá a relationship-et, a SQLAlchemy mapper inicializáláskor összeomolhat, ha egy másik modell próbál hivatkozni rá (back_populates). Megoldás: Mindig párban definiáld a kapcsolatokat (FK + relationship). Példa javítás (AssetAssignment):

organization_id = Column(Integer, ForeignKey("data.organizations.id"))
organization = relationship("Organization") # Ez hiányzott!

17.2. Configuration Missing

Hiba: AttributeError: 'Settings' object has no attribute 'STATIC_DIR' Tanulság: Ha fájlrendszer műveleteket végzel (pl. JSON export), mindig a core/config.py-ban definiáld az abszolút útvonalakat (BASE_DIR, STATIC_DIR), ne hardkódolj útvonalakat a service fájlokban.
17.3. Database Migrations

Best Practice: Ha mezőt adsz hozzá egy modellhez (pl. User.region_code), azonnal generálj Alembic migrációt (alembic revision --autogenerate), különben az API 500-as hibát dob, mert a Python objektum attribútuma létezik, de az SQL lekérdezés nem adja vissza az oszlopot.