Documentation
¶
Overview ¶
Package main — отдельный binary `kaname-migrator`: единая точка сборки CLI миграций (cmd-binary не смешивает обязанности). Обслуживает миграции БД сервиса kaname (схема `kaname`).
API совпадает с goose-flavour:
kaname-migrator up [--target <version>] kaname-migrator down [--target <version>] kaname-migrator status
Глагола `create` здесь НЕТ — и это решение, а не пропуск (#566) ¶
Он был и выдавал `goose.Create` без `SetSequential`. Имя миграции в этом дереве пишет АВТОР: форма номера — решение, а инструмент принял бы его молча и всегда одинаково.
Действующая форма — метка времени заведения `YYYYMMDDHHMMSS_<что_делает>.sql` (`date -u +%Y%m%d%H%M%S`). Объявлена она в ОДНОМ месте и здесь НЕ переписывается: docs/architecture/migration-version-namespace.md. Своей редакции у справки быть не должно — две редакции об одном предмете расходятся молча, и расходились (#1026).
Флаги верхнего уровня:
--dialect postgres (default; единственный поддерживаемый) --dsn <connection-string> (или ENV KACHO_MIGRATOR_DSN)
Приоритет источников DSN — один на семь точек наката и объявлен в общем пакете (`pkg/migratorcli.ResolveDSN`): --dsn > ENV KACHO_MIGRATOR_DSN > конфигурация сервиса. Запасная конфигурация здесь — `config.Load()` (viper), из неё берётся `cfg.MigrateDSN()`: одно helm-values задаёт БД-параметры обоим binary, не дублируя DSN. Своей редакции порядка тут быть не должно — две редакции об одном предмете расходятся молча, и разошлись: тексты отказа у iam, vpc и общего пакета называли РАЗНЫЕ подмножества собственных источников (#1544).