Repository navigation
Releases
Releases · dmedovich/queen
v1.0.0
v1.0.0
Queen 1.0 is the first stable release of the PostgreSQL-first migration library and embedded CLI.
Upgrade notes
- From v0.9.0, upgrade the dependency to
github.com/dmedovich/queen@v1.0.0. The module path and Queen migration history format do not change; applied migrations do not need to be replayed. - The v1.0 support baseline is Go 1.26.3 or newer and PostgreSQL 15 or 16. PostgreSQL is the reference production driver. MySQL, SQLite, ClickHouse, CockroachDB, and SQL Server retain their driver-specific guarantees.
- Keep previously applied migration versions and checksums unchanged. If moving from Goose, import its SQL files and adopt its applied history before running Queen
up.
Stable release contract
- PostgreSQL transactional migration SQL and its history record commit or roll back together. Advisory locking uses a pinned connection. Schema-qualified history tables, per-migration SQL timeouts, and a
pgxpooladapter are supported. NonTransactionalmigrations support commands such asCREATE INDEX CONCURRENTLY. Interrupted commands leave a recovery marker; inspect the database object before usingrecover.- The embedded CLI supports source registry verification, disposable rollback tests, deployment plans, Goose history adoption, and machine-readable CI checks. See the CI/CD guide and compatibility contract.
v0.9.0
Changelog
v0.9.0 (planned)
Upgrade notes
- The Go module moved from
github.com/yaop-labs/queentogithub.com/dmedovich/queen. Update application imports and the module requirement together. Thev0.8.0tag belongs to the old module path; use the new path withv0.9.0once that tag is published. Up,Down,Reset, andValidatenow reject applied versions absent from the local registry.UpandValidatealso reject a pending version older than an applied version. Rolling deployments that intentionally need the previous behavior can setConfig.AllowUnknownAppliedand, separately,Config.AllowOutOfOrder(or the corresponding CLI flags).- PostgreSQL is the reference production target. Other drivers retain the guarantees and limitations listed in the README.
Added and improved
- PostgreSQL migrations use a connection pinned to the advisory lock. Table initialization is serialized, and transactional migration SQL and its history record commit together. The migration table may be schema qualified.
- Per-migration PostgreSQL
SQLLockTimeoutandStatementTimeoutsettings, plus opt-in single-commandNonTransactionalSQL for operations such asCREATE INDEX CONCURRENTLY. Interrupted non-transactional migrations keep a recovery marker;doctorandrecoversupport explicit inspection and resolution. - Goose SQL import handles optional
Down,StatementBegin/StatementEnd, and supportedNO TRANSACTIONfiles.adopt-goosepreviews an existing PostgreSQL Goose history and transfers a verified, matching applied prefix to Queen in one transaction. Unsupported Goose constructs are rejected during import. verify-registrychecks that the built migrator contains the versions declared in migration source files. The generated project registers files created byqueen createautomatically.check --jsonand the CI/CD guide support building, testing, and deploying the same migrator binary.- CI covers formatting, linting, vetting, race tests, and database integration suites.
v0.8.0
v0.7.0
Queen v0.7.0
Added
- New
tap/subsystem for live migration observability: analytics, analyzer, filter, explain, SQL/tx tracing, and export (tap/analytics.go,tap/analyzer.go,tap/explain.go,tap/export.go,tap/filter.go,tap/sql.go,tap/tx.go). queen tapTUI command with a dedicated live view package (cli/tui/live/) for real-time migration execution.- Doctor schema checks and auto-fix (
cli/doctor_schema.go,cli/doctor_fix.go,cli/doctor_checks.go). - Baseline and squash workflows extracted into reusable modules (
cli/baseline_workflow.go,cli/squash_workflow.go). - Gap detection, fill, and ignore split into focused files (
cli/gap_detect.go,cli/gap_fill.go,cli/gap_ignore.go). - Atomic migration operations (
atomic_test.go, core changes inqueen.go,migration.go). - Demo-data generator (
tests/demodata/) andtests/tapdemo/,tests/tuidemo/example apps. - Import command restructured into
cli/commands/importcmd/with Goose import support (scan, templates, write). - Example config files:
.queen.yaml.example,.queenignore.example.
Changed
- Large CLI refactor: monolithic
cmd_*.gofiles (doctor, gap, diff, plan, log, init) split into handler + output modules. - TUI refactor:
init_model.goandmodel.godecomposed intoinit_update.go,init_view.go,model_actions.go,model_filter.go,model_navigation.go,model_tap.go,model_load.go,model_update.go. - Driver layer updates across ClickHouse, CockroachDB, MSSQL, MySQL, Postgres, SQLite, and mock; expanded Postgres integration tests.
- Import safety hardening and significantly expanded README.
- CI workflows optimized (
test.yml,integration-tests.yml).
Fixed
- Import path safety in the new
importcmdpackage. - Various driver test and lint fixes.
Dependencies
go.mod/go.sumupdates.
v0.6.0
Highlights
This release improves CLI driver support, fixes doctor --gaps behavior, reduces
unnecessary CI fanout, stabilizes CI tooling, and adds safer documentation around
migration metadata and custom drivers.
What's changed
Added
- CLI support for
cockroachdb - CLI support for
mssql sqlserveralias for MSSQL SQL driver selection- README documentation for migration metadata
- README documentation for the
queen.Driverinterface
Fixed
doctor --gapsnow runs as a true gaps-only mode- CockroachDB test import cycle introduced by CLI driver wiring
- CLI help/init output now matches the supported driver matrix
Notes
- Migration metadata documentation now reflects current persisted behavior more
accurately - the migration table represents current applied state, not a full append-only audit log
- full append-only audit logging is not part of this release and remains future work
v0.5.0
First near-stable release. Bugs possible.
Features:
- PostgreSQL, MySQL, SQLite, ClickHouse, CockroachDB, MSSQL
- Code-based migrations (no SQL files)
- Automatic up/down rollbacks
- Type-safe + IDE autocomplete
- And more...