2
0

🏗️ Add compatibility with different prisma clients

This commit is contained in:
Baptiste Arnaud
2023-02-08 10:51:32 +01:00
parent c879c6f83a
commit caf54321ec
65 changed files with 942 additions and 211 deletions

View File

@ -0,0 +1,3 @@
import { executePrismaCommand } from './executeCommand'
executePrismaCommand('prisma generate')

View File

@ -0,0 +1,3 @@
import { executePrismaCommand } from './executeCommand'
executePrismaCommand('prisma db push --skip-generate')

View File

@ -0,0 +1,43 @@
import { exec } from 'child_process'
import { join } from 'path'
require('dotenv').config({
override: true,
path: join(__dirname, `../.env`),
})
const postgesqlSchemaPath = join(__dirname, '../postgresql/schema.prisma')
const mysqlSchemaPath = join(__dirname, '../mysql/schema.prisma')
export const executePrismaCommand = (command: string) => {
const databaseUrl = process.env.DATABASE_URL
if (!databaseUrl) {
console.error('Could not find DATABASE_URL in environment')
return
}
if (databaseUrl?.startsWith('mysql://')) {
console.log('Executing for MySQL schema')
executeCommand(`${command} --schema ${mysqlSchemaPath}`)
}
if (databaseUrl?.startsWith('postgresql://')) {
console.log('Executing for PostgreSQL schema')
executeCommand(`${command} --schema ${postgesqlSchemaPath}`)
}
}
const executeCommand = (command: string) => {
exec(command, (error, stdout, stderr) => {
if (error) {
console.log(error.message)
return
}
if (stderr) {
console.log(stderr)
return
}
console.log(stdout)
})
}

View File

@ -0,0 +1,4 @@
import { executePrismaCommand } from './executeCommand'
if (process.env.DATABASE_URL?.startsWith('postgresql://'))
executePrismaCommand('prisma migrate deploy')

View File

@ -0,0 +1,4 @@
import { executePrismaCommand } from './executeCommand'
if (process.env.DATABASE_URL?.startsWith('postgresql://'))
executePrismaCommand('prisma migrate dev --create-only')

View File

@ -0,0 +1,3 @@
import { executePrismaCommand } from './executeCommand'
executePrismaCommand('cross-env BROWSER=none prisma studio')