Skip to content

Releases

v1.0.0

Choose a tag to compare

@dmedovich dmedovich released this 04 Oct 19:04
1d2b76a

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 pgxpool adapter are supported.
  • NonTransactional migrations support commands such as CREATE INDEX CONCURRENTLY. Interrupted commands leave a recovery marker; inspect the database object before using recover.
  • 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

Choose a tag to compare

@dmedovich dmedovich released this 04 Oct 16:31
03787db

Changelog

v0.9.0 (planned)

Upgrade notes

  • The Go module moved from github.com/yaop-labs/queen to github.com/dmedovich/queen. Update application imports and the module requirement together. The v0.8.0 tag belongs to the old module path; use the new path with v0.9.0 once that tag is published.
  • Up, Down, Reset, and Validate now reject applied versions absent from the local registry. Up and Validate also reject a pending version older than an applied version. Rolling deployments that intentionally need the previous behavior can set Config.AllowUnknownApplied and, 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 SQLLockTimeout and StatementTimeout settings, plus opt-in single-command NonTransactional SQL for operations such as CREATE INDEX CONCURRENTLY. Interrupted non-transactional migrations keep a recovery marker; doctor and recover support explicit inspection and resolution.
  • Goose SQL import handles optional Down, StatementBegin/StatementEnd, and supported NO TRANSACTION files. adopt-goose previews 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-registry checks that the built migrator contains the versions declared in migration source files. The generated project registers files created by queen create automatically. check --json and 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

Choose a tag to compare

@dmedovich dmedovich released this 26 Jul 01:46
feat: harden database drivers for v0.8.0

v0.7.0

Choose a tag to compare

@dmedovich dmedovich released this 24 May 23:09

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 tap TUI 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 in queen.go, migration.go).
  • Demo-data generator (tests/demodata/) and tests/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_*.go files (doctor, gap, diff, plan, log, init) split into handler + output modules.
  • TUI refactor: init_model.go and model.go decomposed into init_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 importcmd package.
  • Various driver test and lint fixes.

Dependencies

  • go.mod / go.sum updates.

v0.6.0

Choose a tag to compare

@dmedovich dmedovich released this 07 May 17:36
72c3212

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
  • sqlserver alias for MSSQL SQL driver selection
  • README documentation for migration metadata
  • README documentation for the queen.Driver interface

Fixed

  • doctor --gaps now 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

Choose a tag to compare

@dmedovich dmedovich released this 14 Feb 01:27

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...

Docs: https://queen-wiki.honeynil.tech/

v0.3.0

Choose a tag to compare

@dmedovich dmedovich released this 08 Feb 05:49
  • add test
  • add ci

v0.2.0

Choose a tag to compare

@dmedovich dmedovich released this 04 Feb 14:26
66e41c8
  • add mssqldb support
  • add ydb support
  • add transaction isolation level
  • add logging interface
  • add dry-run
  • add testrollback
  • add naming pattern enforce

v0.1.4

Choose a tag to compare

@dmedovich dmedovich released this 28 Jan 13:50
d5e204d

drivers dry cleanup and typo fix

  • extract common code to drivers/base/base.go
  • unify quoteIdentifier across all drivers
  • fix typo in checksum.go
  • unify GetApplied logic across drivers
  • unify Record/Remove logic across drivers

v0.1.3

Choose a tag to compare

@dmedovich dmedovich released this 16 Jan 20:01
e93e073

Breaking Change

  • checksum: Whitespace is now normalized before hashing. Existing migrations may show modified status once after upgrade.

Fixed

  • Fixed false modified status when SQL migrations were reformatted without logic changes