diff options
Diffstat (limited to 'AGENTS.md')
| -rw-r--r-- | AGENTS.md | 11 |
1 files changed, 6 insertions, 5 deletions
@@ -47,8 +47,7 @@ cmd/blogspace/ main.go (serve|seed|migrate, superadmin + root blog bootst migrates every blog database at start), seed.go internal/config/ env → Config; RootSubdomain = "www" internal/db/ Cluster (control pool + lazy per-blog pools, CREATE/DROP DATABASE), - goose providers; migrations/control/*.sql, migrations/blog/*.sql, - split.go (control Go migration 00006: the one-off move to per-blog DBs) + goose providers; migrations/control/*.sql, migrations/blog/*.sql internal/store/ Store = control DB (users, blog registry, create/delete blog); BlogStore = one blog's DB (settings, pages, posts, images, sections, modules, menu) internal/auth/ bcrypt, JWT issue/parse, cookie, HMAC CSRF @@ -218,9 +217,11 @@ superadmin password to `admin`. Production refuses both. (runs in every blog database — it must not reference `users`/`blogs`) and `internal/db/migrations/control/` for users and the registry; goose `-- +goose Up/Down` sections; they run automatically at startup. Never - edit an applied migration. Control 00005–00007 are the one-off split (add - `db_name`, move content in `split.go`, drop the old tables) — a fresh - install still replays them. + edit an applied migration. Both chains were re-baselined at 00001 after + the move to per-blog databases; deployments from before it have + `goose_db_version` rows 2–7 in the control DB that must be deleted once + (README "Upgrading from a single database") or the next control migration + is refused as "missing". - Blog content goes through `BlogStore` methods, which take `ctx` first and are bound to one blog's database, so a blogger can never touch another blog's rows; users and the registry go through `Store`. |
