migrate: lifecycle module and CLI commands #9
Notifications
Due Date
No due date set.
Depends on
Reference: corestack/go#9
Reference in new issue
Block a user
Connects
migrate(#7) tolifecycle(#5) andlifecycle/cli(#8). Blocked by all three.Requirements
migrate up,migrate down-to <version>andmigrate status, provided as ready-madelifecycle/clicommands that need only the database module.migrateusable withoutlifecycle, for example amigrate/lifecyclesubpackage or functions inlifecycle/cli. Explain the choice in the PR.Done when
Completion gate: migration authoring compatibility
The default Goose Go template registers functions globally from
init(). The currentmigrateconvention deliberately disables that registry and requires provider-local registrations, so the stock generated Go file is not usable unchanged. Do not ship a CLI that perpetuates this manual adaptation.fix). Reuse Goose's supported creation/template facilities where practical.createandfixas development-only helpers. They must not ship in production application binaries. Choose and document either explicit opt-in build tags for app-CLI inclusion (untagged production builds exclude them), or independent authoring tools. Merely hiding commands or gating them with a runtime flag is insufficient. Keep runtime migration commands available to production as required above.migrateconfiguration. Preserve provider-local isolation and the repository's no-global-state/no-initrule, unless a different integration is explicitly reviewed and approved.Kickoff prompt