mkach/wait-for-db.php
Lain Iwakura b99ec23bb5
upd
2025-07-26 11:48:45 +03:00

36 lines
1.1 KiB
PHP

<?php
$host = $_ENV['DB_HOST'] ?? 'mysql';
$dbname = $_ENV['DB_NAME'] ?? 'mkach';
$user = $_ENV['DB_USER'] ?? 'mkach';
$pass = $_ENV['DB_PASS'] ?? 'mkach';
$maxAttempts = 30;
$attempt = 0;
while ($attempt < $maxAttempts) {
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $pdo->query("SELECT COUNT(*) FROM boards");
$count = $stmt->fetchColumn();
if ($count > 0) {
echo "Database is ready with $count boards\n";
exit(0);
} else {
echo "Database connected but no boards found, initializing...\n";
$sql = file_get_contents('/var/www/html/sql/create.sql');
$pdo->exec($sql);
echo "Database initialized successfully\n";
exit(0);
}
} catch (PDOException $e) {
$attempt++;
echo "Attempt $attempt/$maxAttempts: Database not ready yet...\n";
sleep(2);
}
}
echo "Failed to connect to database after $maxAttempts attempts\n";
exit(1);