connect_error) { die("
Koneksi server database gagal: " . htmlspecialchars($conn->connect_error) . "
"); } $selectedDb = null; $selectErrors = []; foreach ($dbCandidates as $candidate) { if (!$candidate) continue; if (@$conn->select_db($candidate)) { $selectedDb = $candidate; break; } $selectErrors[] = $candidate . ' => ' . $conn->error; } echo "Target server: " . htmlspecialchars($host) . ":" . htmlspecialchars((string)$port) . "
"; echo "User: " . htmlspecialchars($user) . "
"; echo "DB_NAME dari env: " . htmlspecialchars($requestedDb) . "
"; if (!$selectedDb) { echo "Gagal memilih database.
"; echo "Database yang dicoba:
" . htmlspecialchars(implode("\n", $selectErrors)) . "";
echo "Solusi: di Coolify bagian Production Environment Variables, ubah DB_NAME menjadi nama database yang ada di ujung MySQL URL internal. Kalau URL internal berakhir dengan /default, isi DB_NAME=default.
Database yang dipakai: " . htmlspecialchars($selectedDb) . "
"; $sqlFile = __DIR__ . '/database.sql'; if (!file_exists($sqlFile)) { die("File SQL tidak ditemukan: " . htmlspecialchars($sqlFile) . "
"); } $sql = file_get_contents($sqlFile); // Di Coolify, database sudah dibuat oleh resource database. // Jadi dump tidak boleh memaksa CREATE DATABASE / USE database lain. $sql = preg_replace('/CREATE\s+DATABASE\s+IF\s+NOT\s+EXISTS\s+`?[^`\s;]+`?.*?;/is', '', $sql); $sql = preg_replace('/CREATE\s+DATABASE\s+`?[^`\s;]+`?.*?;/is', '', $sql); $sql = preg_replace('/USE\s+`?[^`\s;]+`?\s*;/is', '', $sql); // Supaya import ulang tidak langsung gagal karena tabel sudah ada. $sql = preg_replace('/CREATE\s+TABLE\s+`/i', 'CREATE TABLE IF NOT EXISTS `', $sql); $sql = preg_replace('/CREATE\s+TABLE\s+IF\s+NOT\s+EXISTS\s+IF\s+NOT\s+EXISTS\s+`/i', 'CREATE TABLE IF NOT EXISTS `', $sql); if ($conn->multi_query($sql)) { do { if ($result = $conn->store_result()) { $result->free(); } } while ($conn->more_results() && $conn->next_result()); if ($conn->errno) { echo "Ada error saat import: " . htmlspecialchars($conn->error) . "
"; } else { echo "Database berhasil diimport ke database " . htmlspecialchars($selectedDb) . ".
Setelah ini, hapus file install_database.php dari repo lalu redeploy.
Import gagal: " . htmlspecialchars($conn->error) . "
"; } $conn->close(); ?>