58 lines
2.1 KiB
PHP
58 lines
2.1 KiB
PHP
<?php
|
|
// install_database.php
|
|
// Installer sementara untuk import database.sql.
|
|
// HAPUS file ini setelah database berhasil diimport.
|
|
|
|
set_time_limit(300);
|
|
|
|
$host = getenv('DB_HOST') ?: 'localhost';
|
|
$user = getenv('DB_USER') ?: 'root';
|
|
$pass = getenv('DB_PASS') ?: (getenv('DB_PASSWORD') ?: '');
|
|
$db = getenv('DB_NAME') ?: 'pemetaan_kemiskinan';
|
|
$port = (int)(getenv('DB_PORT') ?: 3306);
|
|
|
|
echo "<h2>Install Database WebGIS Kemiskinan Freya</h2>";
|
|
echo "<p>Target koneksi: <b>" . htmlspecialchars($host) . ":" . htmlspecialchars((string)$port) . "</b>, database: <b>" . htmlspecialchars($db) . "</b>, user: <b>" . htmlspecialchars($user) . "</b></p>";
|
|
|
|
$conn = new mysqli($host, $user, $pass, $db, $port);
|
|
|
|
if ($conn->connect_error) {
|
|
die("<p style='color:red'>Koneksi gagal: " . htmlspecialchars($conn->connect_error) . "</p>");
|
|
}
|
|
|
|
$conn->set_charset('utf8mb4');
|
|
|
|
$sqlFile = __DIR__ . '/database.sql';
|
|
|
|
if (!file_exists($sqlFile)) {
|
|
die("<p style='color:red'>File database.sql tidak ditemukan.</p>");
|
|
}
|
|
|
|
$sql = file_get_contents($sqlFile);
|
|
|
|
// Untuk Coolify: database sudah dipilih lewat Initial Database, jadi CREATE DATABASE/USE dihapus jika ada.
|
|
$sql = preg_replace('/CREATE\s+DATABASE\s+(IF\s+NOT\s+EXISTS\s+)?`?[^`\s;]+`?.*?;/is', '', $sql);
|
|
$sql = preg_replace('/USE\s+`?[^`\s;]+`?\s*;/is', '', $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 "<p style='color:red'>Ada error saat import: " . htmlspecialchars($conn->error) . "</p>";
|
|
} else {
|
|
echo "<p style='color:green;font-weight:bold'>Database berhasil diimport.</p>";
|
|
echo "<p>Akun demo:</p>";
|
|
echo "<ul><li>admin / password</li><li>pengurus / password</li><li>pengguna / password</li></ul>";
|
|
echo "<p>Setelah berhasil, hapus file <code>install_database.php</code> dari repo lalu redeploy.</p>";
|
|
}
|
|
} else {
|
|
echo "<p style='color:red'>Import gagal: " . htmlspecialchars($conn->error) . "</p>";
|
|
}
|
|
|
|
$conn->close();
|
|
?>
|