Формат
defaults:
timeout: 30s
environments:
dev:
dsn: "postgres://app:***@localhost:5432/app_dev"
schema: public
prod:
dsn: "postgres://app:***@db.internal:5432/app"
schema: public
pool: {min: 1, max: 4}
lock: {acquire: 10s, ttl: 5m}
Окружения
Окружение выбирается флагом --env; по умолчанию — первое в
файле. Пароли берутся из переменных окружения или секрет-файла: в конфиге
указывается плейсхолдер *** и переменная VESNOVA_DSN_PROD.
Внимание. Не храните пароли в конфиге, который живёт в
git. Веснова отказывается стартовать, если видит неплейсхолдерный DSN в
репозиторном файле с флагом
--deny-inline-secrets.Пулы и таймауты
Для применения миграций используется отдельный короткий пул
(min:1, max:2): долгие коннекты приложения не должны удерживать
DDL-блокировки. Блокировка планировщика (lock) не даёт двум
экземплярам Весновы применять миграции одновременно.