18 lines
538 B
TypeScript
18 lines
538 B
TypeScript
import postgres from "postgres";
|
|
const databaseUrl = process.env.DATABASE_URL;
|
|
if (!databaseUrl) throw new Error("DATABASE_URL is required.");
|
|
const client = postgres(databaseUrl, { max: 1 });
|
|
for (let attempt = 1; attempt <= 30; attempt += 1) {
|
|
try {
|
|
await client`select 1`;
|
|
await client.end();
|
|
process.exit(0);
|
|
} catch {
|
|
if (attempt === 30) {
|
|
await client.end();
|
|
throw new Error("Database was not reachable after 30 attempts.");
|
|
}
|
|
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
}
|
|
}
|