🏗️ Add compatibility with different prisma clients
This commit is contained in:
43
packages/db/scripts/executeCommand.ts
Normal file
43
packages/db/scripts/executeCommand.ts
Normal 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)
|
||||
})
|
||||
}
|
Reference in New Issue
Block a user