goose
goose copied to clipboard
Development Roadmap for v3
This meta-issue captures upcoming improvements planned for the /v3 module of goose.
There are no plans to make backwards-incompatible changes.
The goal is to add new functionality while keeping the existing implementation as-is. There were references to cutting a new major version /v4, but after a lot of thought, experimentation and feedback, we believe there's a way to evolve the goose package without forcing a new major version.
Below are specific areas in the library we'd like to tackle.
Enhancements / New features
- Adding a new
*goose.Providerstruct. https://github.com/pressly/goose/issues/379- no global state
- safe for concurrent use
- https://github.com/pressly/goose/issues/587
- a prerequisite for adding database locking
- update CLI to use
*goose.Provider
- Add locking mechanism
- consider a generic
Lockerinterface. Unlocks the ability for users to bring their own.- https://github.com/pressly/goose/pull/575
- https://github.com/pressly/goose/issues/335
- consider a generic
- Add grouped migrations feature
- https://github.com/pressly/goose/issues/485
- https://github.com/pressly/goose/issues/222
- Add repeatable migration support
- https://github.com/pressly/goose/issues/472
- Add environment variable interpolation
- https://github.com/pressly/goose/issues/347
Performance
...
Bug fixes
...
Misc
- Add timeout functionality
- https://github.com/pressly/goose/issues/576
- Improve engine support in ClickHouse
- https://github.com/pressly/goose/issues/535
- https://github.com/pressly/goose/pull/520
- https://github.com/pressly/goose/pull/530
- Allow baseline and ignore migration support
- https://github.com/pressly/goose/issues/431
- Consider callback functions to skip/run migrations
- https://github.com/pressly/goose/issues/413
- Add YDB support
- https://github.com/pressly/goose/pull/590
- https://github.com/pressly/goose/pull/592