Skip to content

Commit bfd8c08

Browse files
committedNov 18, 2024
Add Windows support for database deployment and improve error handling in runWithProvider.js
1 parent 09a33a4 commit bfd8c08

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed
 

‎package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"lint": "eslint --fix --ext .ts src",
1414
"db:generate": "node runWithProvider.js \"npx prisma generate --schema ./prisma/DATABASE_PROVIDER-schema.prisma\"",
1515
"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\"",
16+
"db:deploy:win": "node runWithProvider.js \"xcopy /E /I prisma\\DATABASE_PROVIDER-migrations prisma\\migrations && npx prisma migrate deploy --schema prisma\\DATABASE_PROVIDER-schema.prisma\"",
1617
"db:studio": "node runWithProvider.js \"npx prisma studio --schema ./prisma/DATABASE_PROVIDER-schema.prisma\"",
1718
"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\""
1819
},
@@ -115,4 +116,4 @@
115116
"tsconfig-paths": "^4.2.0",
116117
"typescript": "^5.5.4"
117118
}
118-
}
119+
}

‎runWithProvider.js

+17-5
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,31 @@
11
const dotenv = require('dotenv');
22
const { execSync } = require('child_process');
3+
const { existsSync } = require('fs');
4+
35
dotenv.config();
46

57
const { DATABASE_PROVIDER } = process.env;
6-
const databaseProviderDefault = DATABASE_PROVIDER ?? "postgresql"
8+
const databaseProviderDefault = DATABASE_PROVIDER ?? 'postgresql';
79

810
if (!DATABASE_PROVIDER) {
9-
console.error(`DATABASE_PROVIDER is not set in the .env file, using default: ${databaseProviderDefault}`);
10-
// process.exit(1);
11+
console.warn(`DATABASE_PROVIDER is not set in the .env file, using default: ${databaseProviderDefault}`);
1112
}
1213

13-
const command = process.argv
14+
let command = process.argv
1415
.slice(2)
1516
.join(' ')
16-
.replace(/\DATABASE_PROVIDER/g, databaseProviderDefault);
17+
.replace(/DATABASE_PROVIDER/g, databaseProviderDefault);
18+
19+
if (command.includes('rmdir') && existsSync('prisma\\migrations')) {
20+
try {
21+
execSync('rmdir /S /Q prisma\\migrations', { stdio: 'inherit' });
22+
} catch (error) {
23+
console.error(`Error removing directory: prisma\\migrations`);
24+
process.exit(1);
25+
}
26+
} else if (command.includes('rmdir')) {
27+
console.warn(`Directory 'prisma\\migrations' does not exist, skipping removal.`);
28+
}
1729

1830
try {
1931
execSync(command, { stdio: 'inherit' });

0 commit comments

Comments
 (0)
Please sign in to comment.