feat: tambah skrip migrasi database otomatis

This commit is contained in:
2026-06-10 00:53:50 +07:00
parent 16177783fd
commit f83b1c675f
7 changed files with 398 additions and 12 deletions
+4 -4
View File
@@ -9,9 +9,9 @@ if ($host_sekarang === 'localhost' || $host_sekarang === '127.0.0.1') {
} else {
// Gunakan Kredensial Normal User dari Coolify
$host = "mysql-webgis";
$user = "mysql"; // Menggunakan Normal User
$pass = "YN54ned6j7P6K7c76sLqh9ERUbm8xvhPFj31Mnt0yKPXxqrIhWICWlbJbJjUCfn7"; // Normal User Password
$db = "default";
$user = "root"; // Menggunakan root user
$pass = "yg7eDOyhmHwJaR93A1SdPawY3533dFd8GlIVnVezQiV3IWR5DDc7ApQeIkzKneGL"; // Root User Password
$db = "webgis_db";
}
// Connect to MySQL server first
@@ -22,7 +22,7 @@ if ($conn->connect_error) {
}
// Create database if not exists
// $conn->query("CREATE DATABASE IF NOT EXISTS `$db` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;");
$conn->query("CREATE DATABASE IF NOT EXISTS `$db` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;");
// Select database
$conn->select_db($db);
+48
View File
@@ -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>";
+14 -4
View File
@@ -1,8 +1,18 @@
<?php
$host = "localhost";
$user = "root";
$pass = "";
$db = "webgis_db_pertemuan1";
$host_sekarang = $_SERVER['SERVER_NAME'];
if ($host_sekarang === 'localhost' || $host_sekarang === '127.0.0.1') {
$host = "localhost";
$user = "root";
$pass = "";
$db = "webgis_db_pertemuan1";
} else {
// Gunakan Kredensial Normal User dari Coolify
$host = "mysql-webgis";
$user = "root"; // Menggunakan root user
$pass = "yg7eDOyhmHwJaR93A1SdPawY3533dFd8GlIVnVezQiV3IWR5DDc7ApQeIkzKneGL"; // Root User Password
$db = "webgis_db_pertemuan1";
}
// Connect first without DB to ensure we can create it if missing
+13 -4
View File
@@ -1,9 +1,18 @@
<?php
$host_sekarang = $_SERVER['SERVER_NAME'];
$host = "localhost";
$user = "root";
$pass = "";
$db = "webgis_db_pertemuan2";
if ($host_sekarang === 'localhost' || $host_sekarang === '127.0.0.1') {
$host = "localhost";
$user = "root";
$pass = "";
$db = "webgis_db_pertemuan2";
} else {
// Gunakan Kredensial Normal User dari Coolify
$host = "mysql-webgis";
$user = "root"; // Menggunakan root user
$pass = "yg7eDOyhmHwJaR93A1SdPawY3533dFd8GlIVnVezQiV3IWR5DDc7ApQeIkzKneGL"; // Root User Password
$db = "webgis_db_pertemuan2";
}
// Connect first without DB to ensure we can create it if missing
+148
View File
@@ -0,0 +1,148 @@
-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Waktu pembuatan: 09 Jun 2026 pada 19.30
-- Versi server: 10.4.32-MariaDB
-- Versi PHP: 8.2.12
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `webgis_db`
--
-- --------------------------------------------------------
--
-- Struktur dari tabel `penduduk_miskin`
--
CREATE TABLE `penduduk_miskin` (
`id` int(11) NOT NULL,
`nama_kk` varchar(150) NOT NULL,
`alamat` text DEFAULT NULL,
`lat` decimal(10,8) NOT NULL,
`lng` decimal(11,8) NOT NULL,
`bantuan` varchar(50) NOT NULL DEFAULT 'Belum Menerima'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
--
-- Dumping data untuk tabel `penduduk_miskin`
--
INSERT INTO `penduduk_miskin` (`id`, `nama_kk`, `alamat`, `lat`, `lng`, `bantuan`) VALUES
(5, 'Bapak Andi', 'Jl. Dr. Rubini (Dalam radius Mujahidin)', -0.04379601, 109.33491571, 'Belum Menerima'),
(8, 'Budi Raharjo', 'Jln. Sultan Syahrir Abdurahman No 23', -0.04146737, 109.32569146, 'Belum Menerima'),
(9, 'Opik', 'Jalan Pattimura', -0.02912824, 109.33909178, 'Belum Menerima'),
(10, 'Budi Doremi', 'Jalan Ismail Marzuki, Benua Melayu Darat, Pontianak Selatan, Pontianak, Kalimantan Barat, Kalimantan, 78243, Indonesia', -0.03235895, 109.33801353, 'Belum Menerima'),
(11, 'Paula', 'Jalan Siam, Benua Melayu Darat, Pontianak Selatan, Pontianak, Kalimantan Barat, Kalimantan, 78243, Indonesia', -0.02968071, 109.34313118, 'Sudah Menerima'),
(12, 'Ujang', 'Benua Melayu Darat, Pontianak Selatan, Pontianak, Kalimantan Barat, Kalimantan, 78243, Indonesia', -0.02906366, 109.34243917, 'Belum Menerima'),
(13, 'Muhammad Vino', 'Jalan Syafe\'i, Akcaya, Pontianak Selatan, Pontianak, Kalimantan Barat, Kalimantan, 78121, Indonesia', -0.04158424, 109.33365762, 'Sudah Menerima');
-- --------------------------------------------------------
--
-- Struktur dari tabel `rumah_ibadah`
--
CREATE TABLE `rumah_ibadah` (
`id` int(11) NOT NULL,
`nama` varchar(150) NOT NULL,
`lat` decimal(10,8) NOT NULL,
`lng` decimal(11,8) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
--
-- Dumping data untuk tabel `rumah_ibadah`
--
INSERT INTO `rumah_ibadah` (`id`, `nama`, `lat`, `lng`) VALUES
(1, 'Masjid Raya Mujahidin', -0.04148170, 109.33650129),
(2, 'Gereja Katedral', -0.02718450, 109.33821312),
(3, 'Gereja Santa Sesilia', -0.07039009, 109.35970672),
(4, 'Gereja Katolik Gembala Baik', -0.02808480, 109.34508920),
(5, 'Gereja Katolik Keluarga Kudus Kota Baru', -0.04330073, 109.32436109),
(6, 'Vihara Tri Ratna', -0.03179517, 109.33682799);
-- --------------------------------------------------------
--
-- Struktur dari tabel `users`
--
CREATE TABLE `users` (
`id` int(11) NOT NULL,
`username` varchar(50) NOT NULL,
`password` varchar(255) NOT NULL,
`avatar` varchar(255) NOT NULL,
`role` varchar(20) NOT NULL DEFAULT 'admin'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
--
-- Dumping data untuk tabel `users`
--
INSERT INTO `users` (`id`, `username`, `password`, `avatar`, `role`) VALUES
(1, 'admin', '$2y$10$JRSmOyRnOmHCN836SSH3YubjyinIi7WFEZPGb9tIiMrzN1d1vv/nO', 'https://ui-avatars.com/api/?name=Admin+Operator&background=1e40af&color=fff&bold=true&size=128', 'admin'),
(2, 'adminKota', '$2y$10$3TESstOAKVQpy3caF.nqSuT9EcZefbA6yG4BL4CtWku8Y.kjLchvC', 'https://ui-avatars.com/api/?name=Admin+Kota&background=0D8ABC&color=fff', 'admin'),
(3, 'adminProvinsi', '$2y$10$3TESstOAKVQpy3caF.nqSuT9EcZefbA6yG4BL4CtWku8Y.kjLchvC', 'https://ui-avatars.com/api/?name=Admin+Provinsi&background=10B981&color=fff', 'admin');
--
-- Indexes for dumped tables
--
--
-- Indeks untuk tabel `penduduk_miskin`
--
ALTER TABLE `penduduk_miskin`
ADD PRIMARY KEY (`id`);
--
-- Indeks untuk tabel `rumah_ibadah`
--
ALTER TABLE `rumah_ibadah`
ADD PRIMARY KEY (`id`);
--
-- Indeks untuk tabel `users`
--
ALTER TABLE `users`
ADD PRIMARY KEY (`id`),
ADD UNIQUE KEY `username` (`username`);
--
-- AUTO_INCREMENT untuk tabel yang dibuang
--
--
-- AUTO_INCREMENT untuk tabel `penduduk_miskin`
--
ALTER TABLE `penduduk_miskin`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=14;
--
-- AUTO_INCREMENT untuk tabel `rumah_ibadah`
--
ALTER TABLE `rumah_ibadah`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7;
--
-- AUTO_INCREMENT untuk tabel `users`
--
ALTER TABLE `users`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+101
View File
@@ -0,0 +1,101 @@
-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Waktu pembuatan: 09 Jun 2026 pada 19.30
-- Versi server: 10.4.32-MariaDB
-- Versi PHP: 8.2.12
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `webgis_db_pertemuan1`
--
-- --------------------------------------------------------
--
-- Struktur dari tabel `jalan`
--
CREATE TABLE `jalan` (
`id` int(11) NOT NULL,
`nama_jalan` varchar(255) NOT NULL,
`status` varchar(100) NOT NULL,
`panjang` decimal(10,2) NOT NULL,
`koordinat` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
--
-- Dumping data untuk tabel `jalan`
--
INSERT INTO `jalan` (`id`, `nama_jalan`, `status`, `panjang`, `koordinat`) VALUES
(1, 'Jalan Camar', 'Jalan Kabupaten', 364.77, '{\"type\":\"LineString\",\"coordinates\":[[109.325992,-0.022257],[109.326555,-0.022117],[109.32729,-0.021897],[109.327666,-0.021817],[109.328127,-0.021736],[109.328535,-0.021699],[109.328824,-0.021645],[109.3292,-0.021619]]}');
-- --------------------------------------------------------
--
-- Struktur dari tabel `parsil`
--
CREATE TABLE `parsil` (
`id` int(11) NOT NULL,
`nama_pemilik` varchar(255) NOT NULL,
`status` varchar(100) NOT NULL,
`luas` decimal(10,2) NOT NULL,
`koordinat` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
--
-- Dumping data untuk tabel `parsil`
--
INSERT INTO `parsil` (`id`, `nama_pemilik`, `status`, `luas`, `koordinat`) VALUES
(1, 'Budi Doremi', 'SHM', 325.57, '{\"type\":\"Polygon\",\"coordinates\":[[[109.329103,-0.024658],[109.32927,-0.024566],[109.329361,-0.024641],[109.329189,-0.024775],[109.329103,-0.024658]]]}');
--
-- Indexes for dumped tables
--
--
-- Indeks untuk tabel `jalan`
--
ALTER TABLE `jalan`
ADD PRIMARY KEY (`id`);
--
-- Indeks untuk tabel `parsil`
--
ALTER TABLE `parsil`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT untuk tabel yang dibuang
--
--
-- AUTO_INCREMENT untuk tabel `jalan`
--
ALTER TABLE `jalan`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
--
-- AUTO_INCREMENT untuk tabel `parsil`
--
ALTER TABLE `parsil`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+70
View File
@@ -0,0 +1,70 @@
-- phpMyAdmin SQL Dump
-- version 5.2.1
-- https://www.phpmyadmin.net/
--
-- Host: 127.0.0.1
-- Waktu pembuatan: 09 Jun 2026 pada 19.30
-- Versi server: 10.4.32-MariaDB
-- Versi PHP: 8.2.12
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Database: `webgis_db_pertemuan2`
--
-- --------------------------------------------------------
--
-- Struktur dari tabel `spbu_locations`
--
CREATE TABLE `spbu_locations` (
`id` int(11) NOT NULL,
`nama_spbu` varchar(255) NOT NULL,
`no_hp` varchar(50) DEFAULT NULL,
`kategori` varchar(50) NOT NULL,
`latitude` double NOT NULL,
`longitude` double NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
--
-- Dumping data untuk tabel `spbu_locations`
--
INSERT INTO `spbu_locations` (`id`, `nama_spbu`, `no_hp`, `kategori`, `latitude`, `longitude`) VALUES
(1, 'SPBU Sungai Raya Dalam', '081788298776', 'Tidak', -0.0919208852080387, 109.3469023704529),
(2, 'SPBU Parit H Husein', '086278992087', 'Ya', -0.06438149823509055, 109.35620963573456);
--
-- Indexes for dumped tables
--
--
-- Indeks untuk tabel `spbu_locations`
--
ALTER TABLE `spbu_locations`
ADD PRIMARY KEY (`id`);
--
-- AUTO_INCREMENT untuk tabel yang dibuang
--
--
-- AUTO_INCREMENT untuk tabel `spbu_locations`
--
ALTER TABLE `spbu_locations`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
COMMIT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;