23 lines
670 B
JavaScript
23 lines
670 B
JavaScript
const postgres = require("postgres");
|
|
const databaseUrl = process.env.DATABASE_URL;
|
|
if (!databaseUrl) throw new Error("DATABASE_URL is required.");
|
|
const client = postgres(databaseUrl, { max: 1 });
|
|
(async () => {
|
|
for (let attempt = 1; attempt <= 30; attempt += 1) {
|
|
try {
|
|
await client`select 1`;
|
|
await client.end();
|
|
return;
|
|
} catch {
|
|
if (attempt === 30) {
|
|
await client.end();
|
|
throw new Error("Database was not reachable after 30 attempts.");
|
|
}
|
|
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
}
|
|
}
|
|
})().catch((error) => {
|
|
console.error("Database wait failed", error);
|
|
process.exit(1);
|
|
});
|