docs(deployment): rewrite migration prose for goose adoption
Update the deployment book and glossary to reflect the goose-based schema migration flow shipped in 12b2f9d/0f7450a: - ch07: clarify startup probe assumes migrations ran out-of-band - ch08: drop AutoMigrate-with-advisory-lock prose; describe goose Job - ch12: pod startup checks goose_db_version, no longer runs migrations - ch14: document the Job→wait→roll deploy gate and how to debug failures - ch16: add "Migrate Job fails during deploy" + "Schema precondition failed" failure modes - ch17: new runbook entries §26 (run migrations manually), §27 (recover from failed/dirty migration), §28 (bootstrap goose on fresh clone) - ch19: postscript on §13 noting MigrateWithLock approach is superseded - ch20: mark "Migration Job for schema changes" task done - glossary: add `goose` and `goose_db_version`; flag AutoMigrate as tests-only - references: add goose links; flag AutoMigrate as tests-only
This commit is contained in:
@@ -173,11 +173,21 @@ suffix. (Chapter 8)
|
||||
## Go + Asynq
|
||||
|
||||
**AutoMigrate**: GORM function that syncs DB schema to Go structs.
|
||||
(Chapter 8)
|
||||
We used this in production until 2026-04, replaced by goose. Tests
|
||||
still use it via `testutil.SetupTestDB`. (Chapter 8)
|
||||
|
||||
**Asynq**: Go library for background job queues. Redis-backed.
|
||||
(Chapter 7)
|
||||
|
||||
**goose**: pressly/goose — the SQL migration tool we use in production
|
||||
(commit 12b2f9d onward). Migration files live in `migrations/`, one
|
||||
file per version with `-- +goose Up` / `-- +goose Down` markers.
|
||||
(Chapter 8)
|
||||
|
||||
**goose_db_version**: goose's version-tracking table. One row per
|
||||
applied migration. `RequireSchemaApplied` reads the latest row at
|
||||
api/worker startup to fail fast on a stale schema. (Chapter 8)
|
||||
|
||||
**GORM**: Go ORM we use. (Chapter 8)
|
||||
|
||||
**pgx**: Go Postgres driver used by GORM. (Chapter 8)
|
||||
|
||||
Reference in New Issue
Block a user