Files
2026-06-09 16:35:12 -05:00

52 lines
1.6 KiB
PHP

<?php
$host = getenv('DB_HOST') ?: 'localhost';
$port = getenv('DB_PORT') ?: '5432';
$dbname = getenv('DB_DATABASE') ?: 'usite_heidivers';
$user = getenv('DB_USERNAME') ?: 'usite_heidivers';
$pass = getenv('DB_PASSWORD') ?: '';
$dsn = "pgsql:host=$host;port=$port;dbname=$dbname";
try {
$pdo = new PDO($dsn, $user, $pass, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
} catch (PDOException $e) {
fwrite(STDERR, "DB not available: {$e->getMessage()}\n");
exit(0);
}
$tables = $pdo->query("SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'")->fetchAll(PDO::FETCH_COLUMN);
if (!in_array('sessions', $tables)) {
$pdo->exec("CREATE TABLE sessions (
id VARCHAR(255) PRIMARY KEY,
user_id BIGINT NULL,
ip_address VARCHAR(45) NULL,
user_agent TEXT NULL,
payload TEXT NOT NULL,
last_activity INTEGER NOT NULL
)");
$pdo->exec("CREATE INDEX sessions_user_id_index ON sessions (user_id)");
$pdo->exec("CREATE INDEX sessions_last_activity_index ON sessions (last_activity)");
echo "Created sessions table\n";
}
if (!in_array('cache', $tables)) {
$pdo->exec("CREATE TABLE cache (
key VARCHAR(255) PRIMARY KEY,
value TEXT NOT NULL,
expiration INTEGER NOT NULL
)");
echo "Created cache table\n";
}
if (!in_array('cache_locks', $tables)) {
$pdo->exec("CREATE TABLE cache_locks (
key VARCHAR(255) PRIMARY KEY,
owner VARCHAR(255) NOT NULL,
expiration INTEGER NOT NULL
)");
echo "Created cache_locks table\n";
}
echo "Tables check complete\n";