Fix migrate.mjs exiting with code 1 after successful migration
client.end() in the finally block was throwing (postgres driver already
cleaned up connections internally during migrate()), causing an unhandled
rejection and exit code 1 despite the migration succeeding.
- Use explicit process.exit(0)/exit(1) instead of relying on implicit exit
- Wrap both client.end() calls with .catch(() => {}) to tolerate cleanup errors
- Add onnotice: () => {} to suppress noisy NOTICE messages (schema/table
already exists) that are normal on every idempotent re-run
https://claude.ai/code/session_01ReaqH3o9NVH4QU4qE9WMMQ
This commit is contained in:
parent
f1af4b5171
commit
0f97ab258f
1 changed files with 9 additions and 3 deletions
|
|
@ -13,14 +13,20 @@ if (!process.env.DATABASE_URL) {
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("Running database migrations...");
|
console.log("Running database migrations...");
|
||||||
const client = postgres(process.env.DATABASE_URL, { max: 1 });
|
const client = postgres(process.env.DATABASE_URL, {
|
||||||
|
max: 1,
|
||||||
|
onnotice: () => {}, // suppress NOTICE messages (schema/table already exists, etc.)
|
||||||
|
});
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const db = drizzle(client);
|
const db = drizzle(client);
|
||||||
await migrate(db, { migrationsFolder: path.resolve(__dirname, "../drizzle") });
|
await migrate(db, { migrationsFolder: path.resolve(__dirname, "../drizzle") });
|
||||||
console.log("Migrations completed successfully");
|
console.log("Migrations completed successfully");
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error("Migration failed:", err);
|
console.error("Migration failed:", err);
|
||||||
|
await client.end().catch(() => {});
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
} finally {
|
|
||||||
await client.end();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await client.end().catch(() => {});
|
||||||
|
process.exit(0);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue