fix init-databases.sql
This commit is contained in:
Binary file not shown.
@@ -1,88 +0,0 @@
|
|||||||
-- ============================================================
|
|
||||||
-- DATABASE: webgis_p3
|
|
||||||
-- Pertemuan 3 – Layer Groups and Layers Control
|
|
||||||
-- Data SPBU dengan 2 Layer Group: Buka 24 Jam & Tidak 24 Jam
|
|
||||||
-- ============================================================
|
|
||||||
|
|
||||||
CREATE DATABASE IF NOT EXISTS webgis_p3
|
|
||||||
CHARACTER SET utf8mb4
|
|
||||||
COLLATE utf8mb4_unicode_ci;
|
|
||||||
|
|
||||||
USE webgis_p3;
|
|
||||||
|
|
||||||
-- ---- Tabel Data Jalan (Polyline) ----
|
|
||||||
CREATE TABLE IF NOT EXISTS data_jalan (
|
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
nama_jalan VARCHAR(200) NOT NULL,
|
|
||||||
status ENUM('Nasional','Provinsi','Kabupaten') NOT NULL DEFAULT 'Kabupaten',
|
|
||||||
panjang_m DOUBLE NOT NULL DEFAULT 0,
|
|
||||||
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;
|
|
||||||
|
|
||||||
-- ---- Tabel Data Parsil Tanah (Polygon) ----
|
|
||||||
CREATE TABLE IF NOT EXISTS data_parsil (
|
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
no_parsil VARCHAR(100) NOT NULL,
|
|
||||||
pemilik VARCHAR(200) NOT NULL,
|
|
||||||
status ENUM('SHM','HGB','HGU','HP') NOT NULL DEFAULT 'SHM',
|
|
||||||
luas_m2 DOUBLE NOT NULL DEFAULT 0,
|
|
||||||
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;
|
|
||||||
|
|
||||||
-- ---- Tabel Data SPBU (Point/Marker) ----
|
|
||||||
-- buka_24_jam: 'Ya' → Layer Group "SPBU 24 Jam"
|
|
||||||
-- 'Tidak' → Layer Group "SPBU Tidak 24 Jam"
|
|
||||||
CREATE TABLE IF NOT EXISTS data_spbu (
|
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
nama_spbu VARCHAR(200) NOT NULL,
|
|
||||||
no_wa VARCHAR(20) NOT NULL,
|
|
||||||
buka_24_jam ENUM('Ya','Tidak') NOT NULL DEFAULT 'Tidak',
|
|
||||||
latitude DOUBLE NOT NULL,
|
|
||||||
longitude DOUBLE NOT NULL,
|
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
||||||
|
|
||||||
-- ---- Data Contoh SPBU (opsional, untuk testing) ----
|
|
||||||
INSERT INTO data_spbu (nama_spbu, no_wa, buka_24_jam, latitude, longitude) VALUES
|
|
||||||
('SPBU Jl. Ahmad Yani', '0812-1111-0001', 'Ya', -0.0400, 109.3200),
|
|
||||||
('SPBU Jl. Gajah Mada', '0812-1111-0002', 'Ya', -0.0520, 109.3450),
|
|
||||||
('SPBU Jl. Diponegoro', '0812-1111-0003', 'Tidak', -0.0610, 109.3600),
|
|
||||||
('SPBU Jl. Sutan Syahrir', '0812-1111-0004', 'Tidak', -0.0480, 109.3700),
|
|
||||||
('SPBU Jl. Kom. Yos Sudarso', '0812-1111-0005', 'Ya', -0.0350, 109.3550);
|
|
||||||
|
|
||||||
-- ============================================================
|
|
||||||
-- Tabel Data Kemiskinan (Point/Marker)
|
|
||||||
-- ============================================================
|
|
||||||
CREATE TABLE IF NOT EXISTS data_kemiskinan (
|
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
nama_kk VARCHAR(200) NOT NULL, -- Nama kepala keluarga
|
|
||||||
jumlah_kk INT NOT NULL DEFAULT 1, -- Jumlah anggota dalam KK
|
|
||||||
alamat TEXT NOT NULL,
|
|
||||||
latitude DOUBLE NOT NULL,
|
|
||||||
longitude DOUBLE NOT NULL,
|
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
||||||
|
|
||||||
-- ============================================================
|
|
||||||
-- Tabel Data Rumah Ibadah (Point/Marker + Radius Buffer)
|
|
||||||
-- jenis: Masjid, Gereja, Pura, Vihara, Klenteng
|
|
||||||
-- radius_m: radius lingkaran buffer dalam meter (100 – 5000)
|
|
||||||
-- ============================================================
|
|
||||||
CREATE TABLE IF NOT EXISTS data_masjid (
|
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
nama_masjid VARCHAR(200) NOT NULL,
|
|
||||||
jenis ENUM('Masjid','Gereja','Pura','Vihara','Klenteng') NOT NULL DEFAULT 'Masjid',
|
|
||||||
pic_masjid VARCHAR(200) NOT NULL, -- Person In Charge
|
|
||||||
alamat TEXT NOT NULL,
|
|
||||||
radius_m INT NOT NULL DEFAULT 500, -- Radius buffer (100-5000 m)
|
|
||||||
latitude DOUBLE NOT NULL,
|
|
||||||
longitude DOUBLE NOT NULL,
|
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
||||||
@@ -1,95 +0,0 @@
|
|||||||
-- ============================================================
|
|
||||||
-- MIGRASI: Penyesuaian Proses Bisnis WebGIS v2.0
|
|
||||||
-- Jalankan di phpMyAdmin setelah database_lengkap.sql
|
|
||||||
-- ============================================================
|
|
||||||
|
|
||||||
USE webgis_p3;
|
|
||||||
|
|
||||||
-- ── 1. Tambah kolom NIK, No WA, dan alasan_tolak ke laporan_masyarakat ──
|
|
||||||
-- Periksa apakah kolom sudah ada sebelum menambahkan
|
|
||||||
|
|
||||||
-- Tambah kolom nik
|
|
||||||
SET @col_exists = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
|
||||||
WHERE TABLE_SCHEMA = 'webgis_p3' AND TABLE_NAME = 'laporan_masyarakat' AND COLUMN_NAME = 'nik');
|
|
||||||
SET @sql = IF(@col_exists = 0,
|
|
||||||
'ALTER TABLE laporan_masyarakat ADD COLUMN nik VARCHAR(20) DEFAULT NULL AFTER nama_pelapor',
|
|
||||||
'SELECT 1');
|
|
||||||
PREPARE stmt FROM @sql;
|
|
||||||
EXECUTE stmt;
|
|
||||||
DEALLOCATE PREPARE stmt;
|
|
||||||
|
|
||||||
-- Tambah kolom no_wa
|
|
||||||
SET @col_exists = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
|
||||||
WHERE TABLE_SCHEMA = 'webgis_p3' AND TABLE_NAME = 'laporan_masyarakat' AND COLUMN_NAME = 'no_wa');
|
|
||||||
SET @sql = IF(@col_exists = 0,
|
|
||||||
'ALTER TABLE laporan_masyarakat ADD COLUMN no_wa VARCHAR(20) DEFAULT NULL AFTER nik',
|
|
||||||
'SELECT 1');
|
|
||||||
PREPARE stmt FROM @sql;
|
|
||||||
EXECUTE stmt;
|
|
||||||
DEALLOCATE PREPARE stmt;
|
|
||||||
|
|
||||||
-- Tambah kolom alasan_tolak
|
|
||||||
SET @col_exists = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
|
||||||
WHERE TABLE_SCHEMA = 'webgis_p3' AND TABLE_NAME = 'laporan_masyarakat' AND COLUMN_NAME = 'alasan_tolak');
|
|
||||||
SET @sql = IF(@col_exists = 0,
|
|
||||||
'ALTER TABLE laporan_masyarakat ADD COLUMN alasan_tolak TEXT DEFAULT NULL AFTER status',
|
|
||||||
'SELECT 1');
|
|
||||||
PREPARE stmt FROM @sql;
|
|
||||||
EXECUTE stmt;
|
|
||||||
DEALLOCATE PREPARE stmt;
|
|
||||||
|
|
||||||
-- ── 2. Perluas ENUM status di laporan_masyarakat ──
|
|
||||||
-- Tambah status: Diverifikasi, Ditolak
|
|
||||||
ALTER TABLE laporan_masyarakat
|
|
||||||
MODIFY COLUMN status ENUM('Pending','Diproses','Diverifikasi','Ditolak','Selesai')
|
|
||||||
NOT NULL DEFAULT 'Pending';
|
|
||||||
|
|
||||||
-- ── 3. Pastikan tabel riwayat_bantuan ada ──
|
|
||||||
CREATE TABLE IF NOT EXISTS riwayat_bantuan (
|
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
id_kemiskinan INT NOT NULL,
|
|
||||||
pemberi VARCHAR(200) NOT NULL,
|
|
||||||
jenis_bantuan VARCHAR(200) NOT NULL,
|
|
||||||
tanggal DATE NOT NULL,
|
|
||||||
keterangan TEXT DEFAULT NULL,
|
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
FOREIGN KEY (id_kemiskinan) REFERENCES data_kemiskinan(id) ON DELETE CASCADE
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
||||||
|
|
||||||
-- ── 4. Pastikan tabel laporan_masyarakat ada ──
|
|
||||||
CREATE TABLE IF NOT EXISTS laporan_masyarakat (
|
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
nama_pelapor VARCHAR(200) NOT NULL,
|
|
||||||
nik VARCHAR(20) DEFAULT NULL,
|
|
||||||
no_wa VARCHAR(20) DEFAULT NULL,
|
|
||||||
deskripsi TEXT NOT NULL,
|
|
||||||
latitude DOUBLE NOT NULL,
|
|
||||||
longitude DOUBLE NOT NULL,
|
|
||||||
status ENUM('Pending','Diproses','Diverifikasi','Ditolak','Selesai') NOT NULL DEFAULT 'Pending',
|
|
||||||
alasan_tolak TEXT DEFAULT NULL,
|
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
||||||
|
|
||||||
-- ── 5. Tambahkan kolom yang mungkin belum ada di data_kemiskinan ──
|
|
||||||
-- status_bantuan
|
|
||||||
SET @col_exists = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
|
||||||
WHERE TABLE_SCHEMA = 'webgis_p3' AND TABLE_NAME = 'data_kemiskinan' AND COLUMN_NAME = 'status_bantuan');
|
|
||||||
SET @sql = IF(@col_exists = 0,
|
|
||||||
"ALTER TABLE data_kemiskinan ADD COLUMN status_bantuan VARCHAR(20) NOT NULL DEFAULT 'Belum' AFTER longitude",
|
|
||||||
'SELECT 1');
|
|
||||||
PREPARE stmt FROM @sql;
|
|
||||||
EXECUTE stmt;
|
|
||||||
DEALLOCATE PREPARE stmt;
|
|
||||||
|
|
||||||
-- kategori
|
|
||||||
SET @col_exists = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
|
|
||||||
WHERE TABLE_SCHEMA = 'webgis_p3' AND TABLE_NAME = 'data_kemiskinan' AND COLUMN_NAME = 'kategori');
|
|
||||||
SET @sql = IF(@col_exists = 0,
|
|
||||||
"ALTER TABLE data_kemiskinan ADD COLUMN kategori VARCHAR(50) NOT NULL DEFAULT 'Miskin' AFTER status_bantuan",
|
|
||||||
'SELECT 1');
|
|
||||||
PREPARE stmt FROM @sql;
|
|
||||||
EXECUTE stmt;
|
|
||||||
DEALLOCATE PREPARE stmt;
|
|
||||||
|
|
||||||
-- ── 6. Password semua akun: "password" ──
|
|
||||||
-- Jalankan update_pass.php atau generate_hash.php jika database sudah ada.
|
|
||||||
@@ -1,82 +0,0 @@
|
|||||||
-- ============================================================
|
|
||||||
-- MIGRASI: Tabel Users & Role-Based Access Control
|
|
||||||
-- WebGIS Poverty Mapping – Sistem Autentikasi
|
|
||||||
-- Jalankan di phpMyAdmin atau MySQL CLI setelah database.sql
|
|
||||||
-- ============================================================
|
|
||||||
|
|
||||||
USE webgis_p3;
|
|
||||||
|
|
||||||
-- ── Tabel pengguna ─────────────────────────────────────────
|
|
||||||
CREATE TABLE IF NOT EXISTS users (
|
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
||||||
username VARCHAR(100) NOT NULL UNIQUE,
|
|
||||||
nama_lengkap VARCHAR(200) NOT NULL,
|
|
||||||
role ENUM('admin','petugas','pengurus','walikota') NOT NULL,
|
|
||||||
password_hash VARCHAR(255) NOT NULL,
|
|
||||||
aktif TINYINT(1) NOT NULL DEFAULT 1,
|
|
||||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
||||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
||||||
INDEX idx_role (role),
|
|
||||||
INDEX idx_aktif (aktif)
|
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
|
||||||
|
|
||||||
-- ── Akun demo (password semua akun: "password") ──
|
|
||||||
-- Hash bcrypt digenerate dengan PHP password_hash('password', PASSWORD_DEFAULT)
|
|
||||||
--
|
|
||||||
-- admin → password
|
|
||||||
-- petugas → password
|
|
||||||
-- pengurus → password
|
|
||||||
-- walikota → password
|
|
||||||
|
|
||||||
INSERT INTO users (username, nama_lengkap, role, password_hash) VALUES
|
|
||||||
(
|
|
||||||
'admin',
|
|
||||||
'Administrator Sistem',
|
|
||||||
'admin',
|
|
||||||
'$2y$10$mhMxyKlOSSTQxfmWXEncfe1AF56CJ8fb.v0h0CYZ.ELQQd8iP5LrG'
|
|
||||||
),
|
|
||||||
(
|
|
||||||
'petugas',
|
|
||||||
'Petugas Lapangan',
|
|
||||||
'petugas',
|
|
||||||
'$2y$10$mhMxyKlOSSTQxfmWXEncfe1AF56CJ8fb.v0h0CYZ.ELQQd8iP5LrG'
|
|
||||||
),
|
|
||||||
(
|
|
||||||
'pengurus',
|
|
||||||
'Pengurus Rumah Ibadah',
|
|
||||||
'pengurus',
|
|
||||||
'$2y$10$mhMxyKlOSSTQxfmWXEncfe1AF56CJ8fb.v0h0CYZ.ELQQd8iP5LrG'
|
|
||||||
),
|
|
||||||
(
|
|
||||||
'walikota',
|
|
||||||
'Walikota Pontianak',
|
|
||||||
'walikota',
|
|
||||||
'$2y$10$mhMxyKlOSSTQxfmWXEncfe1AF56CJ8fb.v0h0CYZ.ELQQd8iP5LrG'
|
|
||||||
);
|
|
||||||
|
|
||||||
-- !! Untuk database yang sudah ada, jalankan update_pass.php atau generate_hash.php !!
|
|
||||||
|
|
||||||
-- ── Catatan hak akses per role ──────────────────────────────
|
|
||||||
/*
|
|
||||||
ROLE: admin
|
|
||||||
─────────────────────────────────────────────────────────────
|
|
||||||
• CRUD semua data: SPBU, kemiskinan, rumah ibadah
|
|
||||||
• Dapat melihat semua layer & analisis spasial
|
|
||||||
• Fitur FAB Tambah: SPBU, Kemiskinan, Rumah Ibadah
|
|
||||||
|
|
||||||
ROLE: petugas
|
|
||||||
─────────────────────────────────────────────────────────────
|
|
||||||
• Input & edit data kemiskinan (CREATE + UPDATE + DELETE)
|
|
||||||
• View semua data (read-only untuk SPBU & Rumah Ibadah)
|
|
||||||
• Fitur FAB Tambah: hanya Kemiskinan
|
|
||||||
• Tidak dapat hapus data SPBU atau Rumah Ibadah
|
|
||||||
• Tidak dapat tambah/edit SPBU atau Rumah Ibadah
|
|
||||||
|
|
||||||
ROLE: pengurus
|
|
||||||
─────────────────────────────────────────────────────────────
|
|
||||||
• Input & edit data rumah ibadah miliknya (CREATE + UPDATE + DELETE)
|
|
||||||
• View data kemiskinan (read-only)
|
|
||||||
• Fitur FAB Tambah: hanya Rumah Ibadah
|
|
||||||
• Tidak dapat hapus data SPBU atau kemiskinan
|
|
||||||
• Tidak dapat tambah/edit SPBU atau kemiskinan
|
|
||||||
*/
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
services:
|
|
||||||
web:
|
|
||||||
build: .
|
|
||||||
ports:
|
|
||||||
- "8084:80"
|
|
||||||
environment:
|
|
||||||
DB_HOST: db
|
|
||||||
DB_USER: webgis
|
|
||||||
DB_PASS: webgis123
|
|
||||||
POVERTY_DB_NAME: webgis_p3
|
|
||||||
SPBU_DB_NAME: webgis_spbu
|
|
||||||
JALAN_DB_NAME: WEB_GIS
|
|
||||||
depends_on:
|
|
||||||
db:
|
|
||||||
condition: service_healthy
|
|
||||||
|
|
||||||
db:
|
|
||||||
image: mysql:8.0
|
|
||||||
environment:
|
|
||||||
MYSQL_ROOT_PASSWORD: root123
|
|
||||||
MYSQL_USER: webgis
|
|
||||||
MYSQL_PASSWORD: webgis123
|
|
||||||
MYSQL_DATABASE: webgis_p3
|
|
||||||
ports:
|
|
||||||
- "3307:3306"
|
|
||||||
volumes:
|
|
||||||
- mysql_data:/var/lib/mysql
|
|
||||||
- ./docker/init-databases.sql:/docker-entrypoint-initdb.d/init.sql:ro
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-proot123"]
|
|
||||||
interval: 5s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 10
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
mysql_data:
|
|
||||||
@@ -169,7 +169,6 @@ INSERT IGNORE INTO data_spbu (nama_spbu, alamat, no_wa, buka_24_jam, latitude, l
|
|||||||
('SPBU Jl. Kom. Yos Sudarso', 'Jl. Kom. Yos Sudarso No. 22, Pontianak', '0812-1111-0005', 'Ya', -0.0350, 109.3550),
|
('SPBU Jl. Kom. Yos Sudarso', 'Jl. Kom. Yos Sudarso No. 22, Pontianak', '0812-1111-0005', 'Ya', -0.0350, 109.3550),
|
||||||
('SPBU Jl. Tanjung Raya', 'Jl. Tanjung Raya No. 101, Pontianak', '0812-1111-0006', 'Tidak', -0.0580, 109.3300),
|
('SPBU Jl. Tanjung Raya', 'Jl. Tanjung Raya No. 101, Pontianak', '0812-1111-0006', 'Tidak', -0.0580, 109.3300),
|
||||||
('SPBU Jl. Veteran', 'Jl. Veteran No. 33, Pontianak', '0812-1111-0007', 'Ya', -0.0450, 109.3380);
|
('SPBU Jl. Veteran', 'Jl. Veteran No. 33, Pontianak', '0812-1111-0007', 'Ya', -0.0450, 109.3380);
|
||||||
)
|
|
||||||
|
|
||||||
-- Import data WEB_GIS
|
-- Import data WEB_GIS
|
||||||
USE WEB_GIS;
|
USE WEB_GIS;
|
||||||
|
|||||||
Reference in New Issue
Block a user