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,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)
})
}