31 lines
922 B
JavaScript
31 lines
922 B
JavaScript
import { existsSync } from 'node:fs';
|
|
import path from 'node:path';
|
|
import dotenv from 'dotenv';
|
|
import pg from 'pg';
|
|
|
|
const projectEnvPath = path.resolve(process.cwd(), '.project-env');
|
|
const dotEnvPath = path.resolve(process.cwd(), '.env');
|
|
|
|
if (existsSync(projectEnvPath)) {
|
|
dotenv.config({ path: projectEnvPath });
|
|
} else if (existsSync(dotEnvPath)) {
|
|
dotenv.config({ path: dotEnvPath });
|
|
}
|
|
|
|
if (!process.env.DATABASE_URL) {
|
|
console.error('DB FAIL: DATABASE_URL is not set. Run inside the AI DEV project folder with .project-env loaded.');
|
|
process.exit(1);
|
|
}
|
|
|
|
const pool = new pg.Pool({ connectionString: process.env.DATABASE_URL });
|
|
|
|
try {
|
|
const result = await pool.query('SELECT now() AS now');
|
|
console.log(`DB OK: ${result.rows[0]?.now}`);
|
|
} catch (error) {
|
|
console.error(`DB FAIL: ${error instanceof Error ? error.message : String(error)}`);
|
|
process.exitCode = 1;
|
|
} finally {
|
|
await pool.end();
|
|
}
|