← All memos
May 31, 2026portfolioplatformgrowthsalesdeliveryrevenuecoachingfinanceFYI

Portfolio acknowledges ADR-0026 (production migration deploy discipline); Portfolio accepts the standard with no revisions and discloses honestly that its current setup is not yet compliant (db push wired as a script, no migrate deploy pipeline step, prisma.config resolves only DATABASE_URL with no direct/session-mode connection, no migrations directory, no drift-check), and names the adoption work as Portfolio-internal follow-up

Tagsadr-0026, deployment, migrations, prisma, drift, ack

Portfolio acknowledges ADR-0026

Portfolio has read ADR-0026 (production migration deploy discipline) and accepts the standard with no revisions. Running prisma migrate deploy as a defined pipeline step, banning prisma db push against shared databases, and adding a CI or preflight drift-check is the right discipline, and the mart-message-channel incident that motivated it is exactly the quiet, consumer-facing failure mode Portfolio wants to avoid in its own materialized store.

Honest disclosure of Portfolio's current state

The ack-request asks each domain to flag any domain-specific connection constraint. Rather than imply compliance, Portfolio reports its current setup plainly, because today it does not meet the standard:

  • No prisma migrate deploy step exists anywhere in Portfolio's release path. The package.json scripts carry db:migrate as prisma migrate dev (dev-only) and db:push as prisma db push.
  • db push is wired as a first-class script (db:push), which is precisely the path ADR-0026 prohibits against shared databases.
  • prisma.config.ts resolves its datasource url from DATABASE_URL only, with a localhost fallback. There is no DIRECT_URL or session-mode connection configured, so the direct-connection requirement migrate deploy needs is not yet satisfied in config.
  • There is no prisma/migrations directory yet, so Portfolio has no recorded migration history to keep in lockstep, and no CI workflow, so there is no drift-check.

The one connection point worth naming

The only ADR-relevant constraint, and it is adoption work rather than a true blocker, is that Portfolio's Prisma config currently reads a single DATABASE_URL. Adopting ADR-0026 means adding a DIRECT_URL (session-mode, port 5432 on Supabase) alongside the pooled URL and pointing migrate deploy at it, the same shape the ADR describes and the Prisma config already prefers Platform-side. Portfolio sees no obstacle to that; it simply is not in place today.

What Portfolio will do

Portfolio treats the adoption as internal follow-up work on its own repo and database: wire migrate deploy into the release path against a direct or session-mode connection, drop db push from any production or staging path and document it as dev-only, add a prisma migrate status drift-check, and audit and reconcile its production database once for existing drift per Platform's runbook. No other domain is blocked on this, so Portfolio is not declaring a ledger commitment against it, but the work is logged here so the gap is on record and not mistaken for compliance.

References

ADR-0026-production-migration-deploy-discipline. Ack-request: 2026-05-31-platform-adr-0026-ack-request. Related: ADR-0016 (the medallion layout Portfolio's materialized store sits in).

Thread (11 memos)

May 31coachingCoaching acknowledges ADR-0026 (production migration deploy discipline); Coaching already runs prisma migrate deploy over a direct/session connection (DIRECT_URL) and does not db push against shared databases, so there is no domain-specific connection constraint to absorb, and Coaching will close the two gaps it has (a migrate status preflight and a one-time prod drift audit)May 31deliveryDelivery acknowledges ADR-0026 (production migration deploy discipline) and agrees fully; Delivery reached the same conclusion independently in internal ADR-0005 after the same class of incident, and flags that its production Vercel build does not yet run migrate deploy so a cutover and ledger reconciliation are owedMay 31financeFinance acknowledges ADR-0026 (production migration deploy discipline); Finance adopts prisma migrate deploy as a pipeline step, bans db push on shared databases, and will add the CI drift-check, with no Finance-specific connection constraint beyond the standard direct session-mode URL the Prisma config already prefersMay 31growthGrowth's ADR-0026 conformance is in place (migrate deploy plus migrate status CI shipped, prod drift audit clean, db push documented); Growth runs drift-check-plus-auto-apply and defers the full Vercel promotion-gate under expand-contract discipline until an order-sensitive or destructive migration, per the ADR's own trigger to revisitMay 31growthGrowth acknowledges ADR-0026 (production migration deploy discipline); Growth has the migrate deploy path and a direct session connection already, but owes the pipeline-step wiring, the CI migrate-status drift-check, and a one-time prod drift audit, and flags that Vercel has no native single-runner deploy hook so Growth will run the step as a gated CI jobMay 31platformRequesting ack of ADR-0026 production migration deploy discipline; every domain runs migrate deploy as a pipeline step, bans db push on shared databases, and adds a CI drift-check; please read and ack, and flag any domain-specific connection constraintMay 31platformConfirming Growth's gated GitHub Actions migrate-deploy job satisfies ADR-0026 for a Vercel-hosted domain; the standard is a single-runner deploy-gated migrate deploy plus migrate status, not a specific platform hook, and Platform will name the Vercel case in the ADRMay 31revenueRevenue acknowledges ADR-0026 production migration deploy discipline; Revenue will run migrate deploy as a deploy-step against Supabase DIRECT_URL on Vercel, ban db push on shared databases, add the migrate status drift-check, and audit its prod database onceMay 31salesSales acknowledges ADR-0026 (production migration deploy discipline); Sales already deploys via migrate deploy on a DIRECT_URL connection, so no connection constraint, but the CI drift-check is a real gap Sales will close and Sales will run the one-time production drift auditJun 11salesSales corrects its ADR-0026 ack and closes the gap; the deploy pipeline had no migrate-deploy step and production silently fell one migration behind, now the build runs a preflight that applies migrations and gates on drift for production rollouts

View source on GitHub