49 lines
1.9 KiB
PHP
49 lines
1.9 KiB
PHP
<?php
|
|
// Kredensial ROOT internal Coolify
|
|
$host = "b84c4osgw4kcw0wc8o8cg8cg";
|
|
$user = "root";
|
|
$pass = "yg7eDOyhmHwJaR93A1SdPawY3533dFd8GlIVnVezQiV3IWR5DDc7ApQeIkzKneGL";
|
|
$conn = new mysqli($host, $user, $pass);
|
|
if ($conn->connect_error) {
|
|
die("❌ Gagal koneksi internal server: " . $conn->connect_error);
|
|
}
|
|
|
|
// Pengaturan daftar database dan file SQL-nya
|
|
$daftar_migrasi = [
|
|
'webgis_db' => 'database_utama.sql',
|
|
'webgis_db_pertemuan1' => 'pertemuan1.sql',
|
|
'webgis_db_pertemuan2' => 'pertemuan2.sql'
|
|
];
|
|
|
|
echo "<h2>⚙️ Memulai Proses Migrasi Database Otomatis...</h2><hr>";
|
|
|
|
foreach ($daftar_migrasi as $db_name => $sql_file) {
|
|
if (!file_exists($sql_file)) {
|
|
echo "⚠️ File <b>$sql_file</b> tidak ditemukan di folder proyek, dilewati.<br>";
|
|
continue;
|
|
}
|
|
|
|
// 1. Buat database baru di server jika belum ada
|
|
$conn->query("CREATE DATABASE IF NOT EXISTS `$db_name` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;");
|
|
$conn->select_db($db_name);
|
|
|
|
// 2. Baca seluruh isi query di dalam file SQL
|
|
$sql_content = file_get_contents($sql_file);
|
|
|
|
// 3. Eksekusi semua query secara massal (multi_query)
|
|
if ($conn->multi_query($sql_content)) {
|
|
// Bersihkan data buffer hasil query agar bisa lanjut ke loop berikutnya
|
|
do {
|
|
if ($result = $conn->store_result()) {
|
|
$result->free();
|
|
}
|
|
} while ($conn->more_results() && $conn->next_result());
|
|
|
|
echo "✅ Database <b>$db_name</b> berhasil dibuat dan seluruh data dari file <u>$sql_file</u> sukses diimpor!<br>";
|
|
} else {
|
|
echo "❌ Gagal mengimpor database $db_name: " . $conn->error . "<br>";
|
|
}
|
|
}
|
|
|
|
echo "<br><hr><p style='color:red; font-weight:bold;'>⚠️ PENTING: Jika semua database sudah sukses sukses tertulis '✅', SEGERA HAPUS file 'migrasi_internal.php' beserta ketiga file '.sql' tadi dari VS Code Anda, lalu lakukan Commit & Push ulang demi keamanan database server Anda!</p>";
|