feat: tambah skrip migrasi database otomatis
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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 */;
|
||||
@@ -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 */;
|
||||
@@ -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 */;
|
||||
Reference in New Issue
Block a user