feat(migrate): configure Goose providers for embedded migrations #14

Merged
end merged 6 commits from feat/migrate into main 2026-10-27 23:07:23 -07:00
Owner

Closes #7.

Adds migrate.New, returning Goose's Provider directly for embedded SQL and provider-local Go migrations, with injected slog logging and Postgres session advisory locking. Consumers must author migration files with Goose's create command; documentation links to fix and upstream hybrid versioning instead of duplicating Goose usage. Go migrations use explicit provider-local registration, keeping migration sets isolated without global init registration.

Updated with main (c45e8ab), regenerated go.mod/go.sum, and reused page's Postgres 17 service for the full race suite. Required local build, vet, race, pinned lint, TODO, docs and formatting checks passed at c1164ca, including actual shared-database Postgres coverage for page, migration failures, and concurrent startup. Module verification and tidy consistency checks passed. Main CI and Documentation CI passed at that commit.

Standard and fresh high-risk implementation reviews and fix verification completed before the main update. The documentation-only updates through 53826eb require upstream authoring tools for SQL, flag the stock Go template incompatibility, and link the compatible authoring workflow completion gate in #9. Docs and whitespace checks passed; implementation behavior is unchanged.

Preserve Goose's creator/fix filenames and complete migration history. fix renames source files, not database history; never renumber migrations already applied to shared databases, and keep explicit Go registration versions in sync. The compatible authoring CLI is gated in #9, including create/fix helpers excluded from production binaries through opt-in build tags or standalone tools.

Closes #7. Adds `migrate.New`, returning Goose's Provider directly for embedded SQL and provider-local Go migrations, with injected slog logging and Postgres session advisory locking. Consumers must author migration files with Goose's `create` command; documentation links to `fix` and upstream hybrid versioning instead of duplicating Goose usage. Go migrations use explicit provider-local registration, keeping migration sets isolated without global `init` registration. Updated with main (`c45e8ab`), regenerated go.mod/go.sum, and reused page's Postgres 17 service for the full race suite. Required local build, vet, race, pinned lint, TODO, docs and formatting checks passed at `c1164ca`, including actual shared-database Postgres coverage for page, migration failures, and concurrent startup. Module verification and tidy consistency checks passed. [Main CI](https://gitea.auvem.com/corestack/go/actions/runs/2568) and [Documentation CI](https://gitea.auvem.com/corestack/go/actions/runs/2569) passed at that commit. Standard and fresh high-risk implementation reviews and fix verification completed before the main update. The documentation-only updates through `53826eb` require upstream authoring tools for SQL, flag the stock Go template incompatibility, and link the compatible authoring workflow completion gate in #9. Docs and whitespace checks passed; implementation behavior is unchanged. Preserve Goose's creator/fix filenames and complete migration history. `fix` renames source files, not database history; never renumber migrations already applied to shared databases, and keep explicit Go registration versions in sync. The compatible authoring CLI is gated in #9, including create/fix helpers excluded from production binaries through opt-in build tags or standalone tools.
end added 3 commits 2026-10-27 12:16:16 -07:00
Use provider-local SQL and Go migrations, injected slog logging, and PostgreSQL session locking. Exercise timestamp migration flows and failures with SQLite and PostgreSQL, including concurrent startup, and require PostgreSQL integration coverage in CI.

Refs #7
fix(migrate): validate migration directory before provider creation
Documentation / docs (pull_request) Successful in 29s
ci / check (pull_request) Successful in 17m24s
3d903403c8
end added 1 commit 2026-10-27 20:26:17 -07:00
Merge main into feat/migrate
Documentation / docs (pull_request) Successful in 28s
ci / check (pull_request) Successful in 4m38s
c1164ca304
end added 1 commit 2026-10-27 20:42:05 -07:00
docs(migrate): require Goose migration authoring tools
Documentation / docs (pull_request) Successful in 21s
ci / check (pull_request) Successful in 11m31s
d1be73bfcf
end added 1 commit 2026-10-27 23:01:43 -07:00
docs(migrate): flag Go template incompatibility and CLI follow-up
Documentation / docs (pull_request) Successful in 16s
ci / check (pull_request) Successful in 28s
53826eb4cf
end merged commit f0439000cb into main 2026-10-27 23:07:23 -07:00
end deleted branch feat/migrate 2026-10-27 23:07:23 -07:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: corestack/go#14