docs: README setup checklists omit 5 of 13 migrations, including the watcha_accounts table the OAuth callback requires
All three READMEs present the migration list as the deployment procedure, but it is incomplete. Against main at 073d105d4dbb3f3afcd2e7cd194cee3a557b0999:
| README | migrations listed | on disk | missing |
|---|---|---|---|
README.md |
8 | 13 | 5 |
README.zh-CN.md |
8 | 13 | 5 |
README.ja.md |
6 | 13 | 7 |
Missing from all three:
202605090002_auth_policy_lints.sql
20260509061039_fix_generation_usage_ambiguous_columns.sql
20260509091500_membership_plan_index.sql
20260513095141_admin_metrics_charts.sql
20260528090000_watcha_oauth_accounts.sqlREADME.ja.md additionally omits 20260721090000_alipay_webpay.sql and 20260722090000_paid_community.sql, which the other two locales already list.
The watcha_accounts omission breaks a documented feature
20260528090000_watcha_oauth_accounts.sql is the only place the table is created:
$ grep -rln "watcha_accounts" supabase/ api/
supabase/migrations/20260528090000_watcha_oauth_accounts.sql
api/auth/watcha/callback.jsapi/auth/watcha/callback.js reads it in resolveWatchaLoginEmail and upserts it in upsertWatchaAccount on every sign-in, so a deployment that follows the checklist verbatim enables the Watcha sign-in option without the table behind it and fails on a missing relation. With #43 documenting the Watcha environment variables, the checklist is the only remaining gap between "configured" and "working".
The other four are smaller: the set_updated_at helper and select-own RLS policies, the qualified reserve_generation_usage RPC, and indexes for membership plans and the admin metrics charts.
Linked change
#46 adds the missing entries to all three locales and adds api/_lib/migrations-documented.test.js, which fails if a migration is ever added without being named in every README, or if a README links a migration that does not exist.
Source: freestylefly/awesome-gpt-image-2