From a1ea1e3e750856086f4abae4abc5489cd3e7d9d9 Mon Sep 17 00:00:00 2001 From: alifaisyahh Date: Thu, 11 Jun 2026 09:56:18 +0700 Subject: [PATCH] feat: tambah migrate.php untuk inisialisasi tabel di Coolify --- Web GIS Layer/migrate.php | 162 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 Web GIS Layer/migrate.php diff --git a/Web GIS Layer/migrate.php b/Web GIS Layer/migrate.php new file mode 100644 index 0000000..8fb4856 --- /dev/null +++ b/Web GIS Layer/migrate.php @@ -0,0 +1,162 @@ +query($sql)) { + return ['label' => $label, 'status' => 'OK', 'msg' => '']; + } else { + return ['label' => $label, 'status' => 'ERROR', 'msg' => $conn->error]; + } +} + +// ── 1. Tabel data_jalan ─────────────────────────────────────── +$results[] = runSQL($conn, 'CREATE TABLE data_jalan', " + CREATE TABLE IF NOT EXISTS data_jalan ( + id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + nama_jalan VARCHAR(150) NOT NULL, + status_jalan ENUM('Jalan Nasional','Jalan Provinsi','Jalan Kabupaten') NOT NULL, + panjang_m DECIMAL(12,2) DEFAULT 0.00, + geojson LONGTEXT NOT NULL, + keterangan TEXT DEFAULT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci +"); + +// ── 2. Tabel data_parsil ────────────────────────────────────── +$results[] = runSQL($conn, 'CREATE TABLE data_parsil', " + CREATE TABLE IF NOT EXISTS data_parsil ( + id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + nama_parsil VARCHAR(150) NOT NULL, + status_hak ENUM('Sertifikat Hak Milik','Sertifikat Hak Guna Bangunan','Sertifikat Hak Guna Usaha','Sertifikat Hak Pakai') NOT NULL, + luas_m2 DECIMAL(15,2) DEFAULT 0.00, + geojson LONGTEXT NOT NULL, + pemilik VARCHAR(150) DEFAULT NULL, + keterangan TEXT DEFAULT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci +"); + +// ── 3. Tabel data_spbu ──────────────────────────────────────── +$results[] = runSQL($conn, 'CREATE TABLE data_spbu', " + CREATE TABLE IF NOT EXISTS data_spbu ( + id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, + nama_spbu VARCHAR(150) NOT NULL, + telepon VARCHAR(20) DEFAULT NULL, + buka_24jam TINYINT(1) NOT NULL DEFAULT 0, + lat DECIMAL(10,7) NOT NULL, + lng DECIMAL(10,7) NOT NULL, + geojson LONGTEXT NOT NULL, + created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci +"); + +// ── 4. Data contoh: Jalan ───────────────────────────────────── +$results[] = runSQL($conn, 'INSERT data_jalan (sample)', " + INSERT IGNORE INTO data_jalan (id, nama_jalan, status_jalan, panjang_m, geojson, keterangan) VALUES + (1, 'Jl. Ahmad Yani', 'Jalan Nasional', 2100.00, + '{\"type\":\"LineString\",\"coordinates\":[[109.3300,-0.0200],[109.3350,-0.0210],[109.3400,-0.0220]]}', + 'Jalan utama Kota Pontianak'), + (2, 'Jl. Gajah Mada', 'Jalan Provinsi', 1450.50, + '{\"type\":\"LineString\",\"coordinates\":[[109.3200,-0.0350],[109.3250,-0.0360],[109.3300,-0.0370]]}', + 'Penghubung pusat kota'), + (3, 'Jl. Tanjungpura', 'Jalan Kabupaten', 870.25, + '{\"type\":\"LineString\",\"coordinates\":[[109.3450,-0.0100],[109.3470,-0.0110],[109.3490,-0.0120]]}', + 'Jalan lingkungan') +"); + +// ── 5. Data contoh: Parsil ──────────────────────────────────── +$results[] = runSQL($conn, 'INSERT data_parsil (sample)', " + INSERT IGNORE INTO data_parsil (id, nama_parsil, status_hak, luas_m2, geojson, pemilik, keterangan) VALUES + (1, 'Parsil A-001', 'Sertifikat Hak Milik', 1200.00, + '{\"type\":\"Polygon\",\"coordinates\":[[[109.3200,-0.0200],[109.3210,-0.0200],[109.3210,-0.0210],[109.3200,-0.0210],[109.3200,-0.0200]]]}', + 'Budi Santoso', 'Tanah kavling perumahan'), + (2, 'Parsil B-002', 'Sertifikat Hak Guna Bangunan', 850.50, + '{\"type\":\"Polygon\",\"coordinates\":[[[109.3220,-0.0220],[109.3230,-0.0220],[109.3230,-0.0230],[109.3220,-0.0230],[109.3220,-0.0220]]]}', + 'PT. Maju Bersama', 'Kavling komersial') +"); + +// ── 6. Data contoh: SPBU ───────────────────────────────────── +$results[] = runSQL($conn, 'INSERT data_spbu (sample)', " + INSERT IGNORE INTO data_spbu (id, nama_spbu, telepon, buka_24jam, lat, lng, geojson) VALUES + (1, 'SPBU Jl. Ahmad Yani', '0561-123456', 1, -0.0200, 109.3300, + '{\"type\":\"Point\",\"coordinates\":[109.3300,-0.0200]}'), + (2, 'SPBU Jl. Gajah Mada', '0561-654321', 0, -0.0350, 109.3200, + '{\"type\":\"Point\",\"coordinates\":[109.3200,-0.0350]}'), + (3, 'SPBU Jl. Tanjungpura', '0561-789012', 1, -0.0100, 109.3450, + '{\"type\":\"Point\",\"coordinates\":[109.3450,-0.0100]}') +"); + +$conn->close(); + +// ── Tampilkan hasil ─────────────────────────────────────────── +$allOk = !in_array('ERROR', array_column($results, 'status')); +?> + + + + +Migration — Web GIS Layer + + + +

🚀 Migration — Web GIS Layer

+

Membuat tabel dan data contoh di database default

+ + +
+ +
+ +
+
+
+ + +
+ +

✅ Migrasi Berhasil!

+

Semua tabel berhasil dibuat. Aplikasi WebGIS siap digunakan.

+ Buka Aplikasi → + +

❌ Ada Error

+

Beberapa langkah gagal. Periksa pesan error di atas.

+ +
+ + +
+ ⚠️ PENTING: Hapus file migrate.php setelah migrasi berhasil untuk keamanan! +
+ + + +