feat: tambah skrip migrasi database otomatis
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
// Kredensial ROOT internal Coolify
|
||||
$host = "mysql-webgis";
|
||||
$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>";
|
||||
Reference in New Issue
Block a user