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> |
||
|---|---|---|
| .. | ||
| versions | ||
| env.py | ||
| README | ||
| script.py.mako | ||
Generic single-database configuration.