Commit graph

2 commits

Author SHA1 Message Date
2f52d2c846 Ret alembic-crash når DATABASE_URL indeholder et bogstaveligt "%"
migrations/env.py brugte config.set_main_option() til at dele
databasens URL med alembic.ini — det kalder internt Pythons
configparser.set(), som fortolker "%" som sin egen
interpolations-syntaks og fejler på ethvert kodeord der indeholder
et procenttegn (fx fra en almindelig password-generator, eller
percent-encoded specialtegn i en URL).

Fundet under produktionsopsætning: brugerens Postgres-kodeord
indeholdt "%", hvilket crashede `alembic upgrade head` med
"ValueError: invalid interpolation syntax".

URL'en gemmes nu i config.attributes (en almindelig dict, ingen
configparser-fortolkning involveret) i stedet, og engine'en i
run_migrations_online bygges direkte med create_engine() i stedet
for engine_from_config() (som ellers ville læse URL'en tilbage via
configparser igen). Verificeret lokalt med både et normalt
DATABASE_URL og et med et bogstaveligt "%" i kodeordet.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-29 12:15:36 +02:00
589dcbcdf5 Scaffold FastAPI + SQLModel + Alembic project, Postgres-backed
Config-driven DATABASE_URL shared by the app and Alembic's env.py
(fixes v1's config drift), psycopg3 driver, auto-discovering
app/models package for SQLModel.metadata, and a /health endpoint
that exercises the DB dependency end-to-end.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-27 15:57:44 +02:00