diff --git a/package.json b/package.json index 7ad418ee..f9131fed 100644 --- a/package.json +++ b/package.json @@ -10,12 +10,11 @@ "dev:server": "clear && tsnd --files --transpile-only --respawn --ignore-watch node_modules ./src/main.ts", "test": "clear && tsnd --files --transpile-only --respawn --ignore-watch node_modules ./test/all.test.ts", "lint": "eslint --fix --ext .ts src", - "db:generate:postgres": "npx prisma generate --schema ./prisma/postgresql-schema.prisma", - "db:generate:mysql": "npx prisma generate --schema ./prisma/mysql-schema.prisma", - "db:deploy:postgres": "rm -rf ./prisma/migrations && cp -r ./prisma/postgresql-migrations ./prisma/migrations && npx prisma migrate deploy --schema ./prisma/postgresql-schema.prisma", - "db:deploy:mysql": "rm -rf ./prisma/migrations && cp -r ./prisma/mysql-migrations ./prisma/migrations && npx prisma migrate deploy --schema ./prisma/mysql-schema.prisma", - "db:studio:postgres": "npx prisma studio --schema ./prisma/postgresql-schema.prisma", - "db:studio:mysql": "npx prisma studio --schema ./prisma/mysql-schema.prisma" + + "db:generate": "node runWithProvider.js \"npx prisma generate --schema ./prisma/DATABASE_PROVIDER-schema.prisma\"", + "db:deploy": "node runWithProvider.js \"rm -rf ./prisma/migrations && cp -r ./prisma/DATABASE_PROVIDER-migrations ./prisma/migrations && npx prisma migrate deploy --schema ./prisma/DATABASE_PROVIDER-schema.prisma\"", + "db:studio": "node runWithProvider.js \"npx prisma studio --schema ./prisma/DATABASE_PROVIDER-schema.prisma\"", + "db:migrate:dev": "node runWithProvider.js \"rm -rf ./prisma/migrations && cp -r ./prisma/DATABASE_PROVIDER-migrations ./prisma/migrations && npx prisma migrate dev --schema ./prisma/DATABASE_PROVIDER-schema.prisma && cp -r ./prisma/migrations/* ./prisma/DATABASE_PROVIDER-migrations\"" }, "repository": { "type": "git", diff --git a/runWithProvider.js b/runWithProvider.js new file mode 100644 index 00000000..8fe1af0d --- /dev/null +++ b/runWithProvider.js @@ -0,0 +1,22 @@ +const dotenv = require('dotenv'); +const { execSync } = require('child_process'); +dotenv.config(); + +const { DATABASE_PROVIDER } = process.env; + +if (!DATABASE_PROVIDER) { + console.error('DATABASE_PROVIDER is not set in the .env file'); + process.exit(1); +} + +const command = process.argv + .slice(2) + .join(' ') + .replace(/\DATABASE_PROVIDER/g, DATABASE_PROVIDER); + +try { + execSync(command, { stdio: 'inherit' }); +} catch (error) { + console.error(`Error executing command: ${command}`); + process.exit(1); +}