fix production db
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
const { ensureDatabaseUrl } = require('./runtime-config')
|
||||
const { PrismaClient } = require('../generated')
|
||||
|
||||
ensureDatabaseUrl()
|
||||
|
||||
module.exports = {
|
||||
PrismaClient,
|
||||
ensureDatabaseUrl,
|
||||
}
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
import { ensureDatabaseUrl } from './runtime-config'
|
||||
|
||||
ensureDatabaseUrl()
|
||||
|
||||
export { PrismaClient } from '../generated'
|
||||
export { ensureDatabaseUrl } from './runtime-config'
|
||||
|
||||
export type AdminRole = 'SUPER_ADMIN' | 'ADMIN' | 'SUPPORT' | 'FINANCE' | 'VIEWER'
|
||||
export type EmployeeRole = 'OWNER' | 'MANAGER' | 'AGENT'
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
const ENABLED_VALUES = new Set(['1', 'true', 'yes'])
|
||||
|
||||
function ensureDatabaseUrl(env = process.env) {
|
||||
const shouldBuildFromPostgres = ENABLED_VALUES.has(
|
||||
env.DATABASE_URL_FROM_POSTGRES?.trim().toLowerCase() ?? '',
|
||||
)
|
||||
|
||||
if (!shouldBuildFromPostgres) {
|
||||
return env.DATABASE_URL
|
||||
}
|
||||
|
||||
if (!env.POSTGRES_PASSWORD) {
|
||||
throw new Error('DATABASE_URL_FROM_POSTGRES is enabled but POSTGRES_PASSWORD is not set')
|
||||
}
|
||||
|
||||
const user = env.POSTGRES_USER ?? 'postgres'
|
||||
const password = env.POSTGRES_PASSWORD
|
||||
const host = env.POSTGRES_HOST ?? 'postgres'
|
||||
const port = env.POSTGRES_PORT ?? '5432'
|
||||
const database = env.POSTGRES_DB ?? 'rentaldrivego'
|
||||
|
||||
env.DATABASE_URL = `postgresql://${encodeURIComponent(user)}:${encodeURIComponent(password)}@${host}:${port}/${encodeURIComponent(database)}`
|
||||
|
||||
return env.DATABASE_URL
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
ensureDatabaseUrl,
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
const ENABLED_VALUES = new Set(['1', 'true', 'yes'])
|
||||
|
||||
export function ensureDatabaseUrl(env: NodeJS.ProcessEnv = process.env) {
|
||||
const shouldBuildFromPostgres = ENABLED_VALUES.has(
|
||||
env.DATABASE_URL_FROM_POSTGRES?.trim().toLowerCase() ?? '',
|
||||
)
|
||||
|
||||
if (!shouldBuildFromPostgres) {
|
||||
return env.DATABASE_URL
|
||||
}
|
||||
|
||||
if (!env.POSTGRES_PASSWORD) {
|
||||
throw new Error('DATABASE_URL_FROM_POSTGRES is enabled but POSTGRES_PASSWORD is not set')
|
||||
}
|
||||
|
||||
const user = env.POSTGRES_USER ?? 'postgres'
|
||||
const password = env.POSTGRES_PASSWORD
|
||||
const host = env.POSTGRES_HOST ?? 'postgres'
|
||||
const port = env.POSTGRES_PORT ?? '5432'
|
||||
const database = env.POSTGRES_DB ?? 'rentaldrivego'
|
||||
|
||||
env.DATABASE_URL = `postgresql://${encodeURIComponent(user)}:${encodeURIComponent(password)}@${host}:${port}/${encodeURIComponent(database)}`
|
||||
|
||||
return env.DATABASE_URL
|
||||
}
|
||||
Reference in New Issue
Block a user