refactor: remove all SQLite code, standardize on PostgreSQL

- Remove database provider switching logic from prisma.ts and auth.ts
- Hardcode PostgreSQL as the only supported database
- Remove switch-database.js and use-dev-db.js scripts
- Remove Python utility scripts that used sqlite3 directly
- Update justfile to remove SQLite test targets
- Update package.json to remove db:switch script
- Update Dockerfile.ci-base to default to PostgreSQL
- Update .env.example to remove SQLite mention
- Update playwright.config.ts comments
- Update .gitignore to remove SQLite file patterns

This eliminates the root cause of test failures: the dev server and test
Prisma client were using different databases (PostgreSQL vs SQLite).
This commit is contained in:
2026-05-02 04:09:37 -07:00
parent 08152fba51
commit 28fecdfaad
14 changed files with 91 additions and 873 deletions
+7 -25
View File
@@ -1,37 +1,19 @@
import { PrismaClient } from '@prisma/client'
import { PrismaPg } from '@prisma/adapter-pg'
const globalForPrisma = globalThis as unknown as {
prisma: PrismaClient | undefined
}
// Detect database provider from environment (default to sqlite for local development)
// Next.js automatically loads environment variables from .env, .env.development, .env.production
const databaseProvider = process.env.DATABASE_PROVIDER || 'sqlite'
const databaseUrl = process.env.DATABASE_URL
// Create PrismaClient with appropriate adapter
if (!databaseUrl) {
throw new Error('DATABASE_URL environment variable is required.')
}
const createPrismaClient = () => {
let client: PrismaClient
if (databaseProvider === 'postgresql') {
// Validate DATABASE_URL is present for PostgreSQL
if (!databaseUrl) {
throw new Error(
'DATABASE_URL environment variable is required when DATABASE_PROVIDER is set to postgresql. ' +
'Current DATABASE_PROVIDER: ' + databaseProvider
)
}
// Use PrismaPg adapter for PostgreSQL
const { PrismaPg } = require('@prisma/adapter-pg')
const adapter = new PrismaPg({ connectionString: databaseUrl })
client = new PrismaClient({ adapter })
} else {
// No adapter needed for SQLite
client = new PrismaClient()
}
return client
const adapter = new PrismaPg({ connectionString: databaseUrl })
return new PrismaClient({ adapter })
}
export const prisma = globalForPrisma.prisma ?? createPrismaClient()