@@ -0,0 +1,22 @@
|
||||
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);
|
||||
});
|
||||
Reference in New Issue
Block a user