Replace user_trust_settings with user_membership in the linear migration chain. Fold billing-renewal columns from 0004 into the 0003 CREATE TABLE. No ALTER-rename migration.
-
Replace
infra/k8s/base/ops/source/database/linear-migrations/app/0003_user_trust_and_entitlement_overrides.sqlwith0003_user_membership.sql:CREATE TABLE user_membershipwith all membership + renewal columns- Constraints
chk_user_membership_* - Trigger
set_updated_at_user_membership - Backfill
INSERT INTO user_membership ... SELECT ... FROM "user" - Indexes
idx_user_membership_next_renewal_attempt_at,idx_user_membership_renewal_retry_backoff_until
-
Replace
0004_billing_catalog_and_trust_renewal.sqlwith0004_billing_catalog_and_membership_renewal.sql:- Keep billing catalog tables and seeds
- Remove
ALTER TABLE user_trust_settingsand trust-named indexes
-
Update infra/k8s/base/ops/kustomization.yaml ConfigMap file list for the two new filenames.
-
Regenerate baseline (operator or agent with Nix):
bash scripts/database/generate-linear-baseline.shCommit infra/k8s/base/db/source/bootstrap/0003a_app_linear_baseline.sql.gz.
infra/k8s/base/ops/source/database/linear-migrations/app/0003_user_membership.sqlinfra/k8s/base/ops/source/database/linear-migrations/app/0004_billing_catalog_and_membership_renewal.sqlinfra/k8s/base/ops/kustomization.yamlinfra/k8s/base/db/source/bootstrap/0003a_app_linear_baseline.sql.gz
bash scripts/database/validate-linear-migrations.sh
bash scripts/database/verify-linear-baseline.sh
gunzip -c infra/k8s/base/db/source/bootstrap/0003a_app_linear_baseline.sql.gz | rg user_membershipExpect user_membership in baseline; no user_trust_settings.