Compare commits

...

4 Commits

Author SHA1 Message Date
Nama Kamu 303bec2bd8 perubahan docker 2026-06-13 11:30:40 +07:00
Nama Kamu f6ce7e2c8b perbaikan keseluruhan bug 2026-06-13 08:08:49 +07:00
Nama Kamu 929e06eddc perbaikan struktur compose 2026-06-12 13:25:38 +07:00
Nama Kamu e60ef1a87c perbaikan database 2026-06-12 09:25:07 +07:00
14 changed files with 112 additions and 83 deletions
+6 -5
View File
@@ -1,10 +1,11 @@
<?php <?php
$host = getenv('DB_HOST') ?: 'localhost'; $host = getenv('DB_HOST') ?: 'db';
$user = getenv('DB_USER') ?: 'root'; $port = getenv('DB_PORT') ?: 3306;
$pass = getenv('DB_PASSWORD') ?: ''; $user = getenv('DB_USERNAME') ?: 'webgis_user';
$db = getenv('DB_NAME') ?: 'uas_06'; $pass = getenv('DB_PASSWORD') ?: 'webgis_password';
$db = getenv('DB_DATABASE') ?: 'webgis_spbu';
$conn = @mysqli_connect($host, $user, $pass, $db); $conn = @mysqli_connect($host, $user, $pass, $db, $port);
if (!$conn) { if (!$conn) {
header('Content-Type: application/json'); header('Content-Type: application/json');
+6 -5
View File
@@ -1,8 +1,9 @@
<?php <?php
$host = getenv('DB_HOST') ?: 'localhost'; $host = getenv('DB_HOST') ?: 'db';
$user = getenv('DB_USER') ?: 'root'; $port = getenv('DB_PORT') ?: 3306;
$pass = getenv('DB_PASSWORD') ?: ''; $user = getenv('DB_USERNAME') ?: 'webgis_user';
$db = getenv('DB_NAME') ?: 'uas_06'; $pass = getenv('DB_PASSWORD') ?: 'webgis_password';
$db = getenv('DB_DATABASE') ?: 'webgis_spbu';
$conn = @mysqli_connect($host, $user, $pass, $db); $conn = @mysqli_connect($host, $user, $pass, $db, $port);
+6 -5
View File
@@ -1,10 +1,11 @@
<?php <?php
$host = getenv('DB_HOST') ?: 'localhost'; $host = getenv('DB_HOST') ?: 'db';
$user = getenv('DB_USER') ?: 'root'; $port = getenv('DB_PORT') ?: 3306;
$pass = getenv('DB_PASSWORD') ?: ''; $user = getenv('DB_USERNAME') ?: 'webgis_user';
$db = getenv('DB_NAME') ?: 'uas_06'; $pass = getenv('DB_PASSWORD') ?: 'webgis_password';
$db = getenv('DB_DATABASE') ?: 'webgis_spbu';
$conn = @mysqli_connect($host, $user, $pass, $db); $conn = @mysqli_connect($host, $user, $pass, $db, $port);
if (!$conn) { if (!$conn) {
die("Koneksi database gagal: " . mysqli_connect_error()); die("Koneksi database gagal: " . mysqli_connect_error());
+1 -1
View File
@@ -12,7 +12,7 @@ if ($aksi === 'login') {
$email = trim($_POST['email'] ?? ''); $email = trim($_POST['email'] ?? '');
$password = $_POST['password'] ?? ''; $password = $_POST['password'] ?? '';
if (!$email || !$password) json_out(['error'=>'Email dan password wajib diisi'],400); if (!$email || !$password) json_out(['error'=>'Email dan password wajib diisi'],400);
$stmt = $conn->prepare("SELECT u.*,r.nama AS role_nama FROM user u JOIN role r ON u.role_id=r.id WHERE u.email=? AND u.aktif=1 LIMIT 1"); $stmt = $conn->prepare("SELECT u.*,r.nama AS role_nama FROM `user` u JOIN `role` r ON u.role_id=r.id WHERE u.email=? AND u.aktif=1 LIMIT 1");
if (!$stmt) { if (!$stmt) {
json_out(['error' => 'Database error: ' . $conn->error], 500); json_out(['error' => 'Database error: ' . $conn->error], 500);
} }
+1 -1
View File
@@ -52,7 +52,7 @@ if ($aksi === 'histori') {
FROM histori_bantuan hb FROM histori_bantuan hb
JOIN bantuan b ON hb.bantuan_id=b.id JOIN bantuan b ON hb.bantuan_id=b.id
JOIN penduduk p ON hb.penduduk_id=p.id JOIN penduduk p ON hb.penduduk_id=p.id
LEFT JOIN user u ON hb.disalurkan_oleh=u.id LEFT JOIN `user` u ON hb.disalurkan_oleh=u.id
WHERE $w ORDER BY hb.tanggal DESC,hb.id DESC"; WHERE $w ORDER BY hb.tanggal DESC,hb.id DESC";
if($params){$stmt=$conn->prepare($sql);$stmt->bind_param($types,...$params);$stmt->execute();$res=$stmt->get_result();$stmt->close();} if($params){$stmt=$conn->prepare($sql);$stmt->bind_param($types,...$params);$stmt->execute();$res=$stmt->get_result();$stmt->close();}
else $res=$conn->query($sql); else $res=$conn->query($sql);
+3 -3
View File
@@ -11,7 +11,7 @@ if ($aksi === 'inbox') {
if(!$uid) json_out([]); if(!$uid) json_out([]);
$sql="SELECT p.*,u.nama AS nama_pengirim $sql="SELECT p.*,u.nama AS nama_pengirim
FROM pesan p FROM pesan p
JOIN user u ON p.dari_user=u.id JOIN `user` u ON p.dari_user=u.id
WHERE (p.ke_user=$uid OR p.ke_user IS NULL) WHERE (p.ke_user=$uid OR p.ke_user IS NULL)
ORDER BY p.created_at DESC LIMIT 80"; ORDER BY p.created_at DESC LIMIT 80";
$res=$conn->query($sql); $rows=[]; $res=$conn->query($sql); $rows=[];
@@ -23,7 +23,7 @@ if ($aksi === 'inbox') {
if ($aksi === 'history') { if ($aksi === 'history') {
$ke=(int)($_GET['ke']??0); $ke=(int)($_GET['ke']??0);
$res=$conn->query("SELECT p.*,u.nama AS nama_pengirim FROM pesan p JOIN user u ON p.dari_user=u.id WHERE (p.dari_user=$uid AND p.ke_user=$ke) OR (p.dari_user=$ke AND p.ke_user=$uid) ORDER BY p.created_at ASC LIMIT 100"); $res=$conn->query("SELECT p.*,u.nama AS nama_pengirim FROM pesan p JOIN `user` u ON p.dari_user=u.id WHERE (p.dari_user=$uid AND p.ke_user=$ke) OR (p.dari_user=$ke AND p.ke_user=$uid) ORDER BY p.created_at ASC LIMIT 100");
$rows=[]; if($res) while($r=$res->fetch_assoc()) $rows[]=$r; $rows=[]; if($res) while($r=$res->fetch_assoc()) $rows[]=$r;
json_out($rows); json_out($rows);
} }
@@ -39,7 +39,7 @@ if ($aksi === 'kirim') {
} }
if ($aksi === 'kontak') { if ($aksi === 'kontak') {
$res=$conn->query("SELECT u.id,u.nama,r.nama AS role FROM user u JOIN role r ON u.role_id=r.id WHERE u.aktif=1".($uid?" AND u.id!=$uid":'')." ORDER BY u.nama"); $res=$conn->query("SELECT u.id,u.nama,r.nama AS role FROM `user` u JOIN `role` r ON u.role_id=r.id WHERE u.aktif=1".($uid?" AND u.id!=$uid":'')." ORDER BY u.nama");
$rows=[]; if($res) while($r=$res->fetch_assoc()) $rows[]=$r; $rows=[]; if($res) while($r=$res->fetch_assoc()) $rows[]=$r;
json_out($rows); json_out($rows);
} }
+1 -1
View File
@@ -32,7 +32,7 @@ $prioritas=[]; $res=$conn->query("SELECT p.id,p.nik,p.nama,p.status_ekonomi,TIME
if($res) while($r=$res->fetch_assoc()) $prioritas[]=$r; if($res) while($r=$res->fetch_assoc()) $prioritas[]=$r;
// aktivitas // aktivitas
$aktivitas=[]; $res=$conn->query("SELECT la.*,u.nama AS nama_user FROM log_aktivitas la LEFT JOIN user u ON la.user_id=u.id ORDER BY la.created_at DESC LIMIT 15"); $aktivitas=[]; $res=$conn->query("SELECT la.*,u.nama AS nama_user FROM log_aktivitas la LEFT JOIN `user` u ON la.user_id=u.id ORDER BY la.created_at DESC LIMIT 15");
if($res) while($r=$res->fetch_assoc()) $aktivitas[]=$r; if($res) while($r=$res->fetch_assoc()) $aktivitas[]=$r;
json_out([ json_out([
+6 -5
View File
@@ -2,12 +2,13 @@
// ============================================================ // ============================================================
// koneksi.php Database uas_06 // koneksi.php Database uas_06
// ============================================================ // ============================================================
$host = getenv('DB_HOST') ?: 'localhost'; $host = getenv('DB_HOST') ?: 'db';
$user = getenv('DB_USER') ?: 'root'; $port = getenv('DB_PORT') ?: 3306;
$pass = getenv('DB_PASSWORD') ?: ''; $user = getenv('DB_USERNAME') ?: 'webgis_user';
$db = getenv('DB_NAME') ?: 'uas_06'; $pass = getenv('DB_PASSWORD') ?: 'webgis_password';
$db = getenv('DB_DATABASE') ?: 'webgis_spbu';
$conn = @mysqli_connect($host, $user, $pass, $db); $conn = @mysqli_connect($host, $user, $pass, $db, $port);
if (!$conn) { if (!$conn) {
http_response_code(500); http_response_code(500);
+2 -2
View File
@@ -18,7 +18,7 @@ if ($aksi === 'list') {
$sql="SELECT l.*,p.nama AS nama_penduduk,p.status_ekonomi,p.nik,u.nama AS nama_verifikator $sql="SELECT l.*,p.nama AS nama_penduduk,p.status_ekonomi,p.nik,u.nama AS nama_verifikator
FROM laporan l FROM laporan l
LEFT JOIN penduduk p ON l.penduduk_id=p.id LEFT JOIN penduduk p ON l.penduduk_id=p.id
LEFT JOIN user u ON l.diverifikasi_oleh=u.id LEFT JOIN `user` u ON l.diverifikasi_oleh=u.id
WHERE $w WHERE $w
ORDER BY FIELD(l.urgensi,'darurat','tinggi','sedang','rendah'),l.created_at DESC"; ORDER BY FIELD(l.urgensi,'darurat','tinggi','sedang','rendah'),l.created_at DESC";
$res=$conn->query($sql); $res=$conn->query($sql);
@@ -29,7 +29,7 @@ if ($aksi === 'list') {
if ($aksi === 'detail') { if ($aksi === 'detail') {
$id=(int)($_GET['id']??0); $id=(int)($_GET['id']??0);
$res=$conn->query("SELECT l.*,p.nama AS nama_penduduk,u.nama AS nama_verifikator FROM laporan l LEFT JOIN penduduk p ON l.penduduk_id=p.id LEFT JOIN user u ON l.diverifikasi_oleh=u.id WHERE l.id=$id LIMIT 1"); $res=$conn->query("SELECT l.*,p.nama AS nama_penduduk,u.nama AS nama_verifikator FROM laporan l LEFT JOIN penduduk p ON l.penduduk_id=p.id LEFT JOIN `user` u ON l.diverifikasi_oleh=u.id WHERE l.id=$id LIMIT 1");
json_out($res->fetch_assoc()??['error'=>'Tidak ditemukan']); json_out($res->fetch_assoc()??['error'=>'Tidak ditemukan']);
} }
+7 -7
View File
@@ -7,7 +7,7 @@ include 'koneksi.php';
$aksi = $_REQUEST['aksi'] ?? 'list'; $aksi = $_REQUEST['aksi'] ?? 'list';
if ($aksi === 'list') { if ($aksi === 'list') {
$res=$conn->query("SELECT u.id,u.nama,u.email,u.aktif,u.created_at,r.nama AS role_nama,r.id AS role_id FROM user u JOIN role r ON u.role_id=r.id ORDER BY u.nama"); $res=$conn->query("SELECT u.id,u.nama,u.email,u.aktif,u.created_at,r.nama AS role_nama,r.id AS role_id FROM `user` u JOIN `role` r ON u.role_id=r.id ORDER BY u.nama");
if(!$res) json_out(['error'=>$conn->error],500); if(!$res) json_out(['error'=>$conn->error],500);
$rows=[]; while($r=$res->fetch_assoc()) $rows[]=$r; $rows=[]; while($r=$res->fetch_assoc()) $rows[]=$r;
json_out($rows); json_out($rows);
@@ -18,9 +18,9 @@ if ($aksi === 'simpan') {
$em=$conn->real_escape_string($_POST['email']??''); $em=$conn->real_escape_string($_POST['email']??'');
$pw=password_hash($_POST['password']??'password',PASSWORD_DEFAULT); $pw=password_hash($_POST['password']??'password',PASSWORD_DEFAULT);
$rid=(int)($_POST['role_id']??1); $rid=(int)($_POST['role_id']??1);
$cek=$conn->query("SELECT id FROM user WHERE email='$em'")->num_rows; $cek=$conn->query("SELECT id FROM `user` WHERE email='$em'")->num_rows;
if($cek>0) json_out(['error'=>'Email sudah digunakan'],400); if($cek>0) json_out(['error'=>'Email sudah digunakan'],400);
$conn->query("INSERT INTO user (nama,email,password,role_id) VALUES ('$nm','$em','$pw',$rid)"); $conn->query("INSERT INTO `user` (nama,email,password,role_id) VALUES ('$nm','$em','$pw',$rid)");
if($conn->error) json_out(['error'=>$conn->error],500); if($conn->error) json_out(['error'=>$conn->error],500);
json_out(['success'=>true,'id'=>$conn->insert_id]); json_out(['success'=>true,'id'=>$conn->insert_id]);
} }
@@ -31,22 +31,22 @@ if ($aksi === 'edit') {
$em=$conn->real_escape_string($_POST['email']??''); $em=$conn->real_escape_string($_POST['email']??'');
$rid=(int)($_POST['role_id']??1); $rid=(int)($_POST['role_id']??1);
$akt=(int)($_POST['aktif']??1); $akt=(int)($_POST['aktif']??1);
$conn->query("UPDATE user SET nama='$nm',email='$em',role_id=$rid,aktif=$akt WHERE id=$id"); $conn->query("UPDATE `user` SET nama='$nm',email='$em',role_id=$rid,aktif=$akt WHERE id=$id");
if(!empty($_POST['password'])){ if(!empty($_POST['password'])){
$pw=password_hash($_POST['password'],PASSWORD_DEFAULT); $pw=password_hash($_POST['password'],PASSWORD_DEFAULT);
$conn->query("UPDATE user SET password='$pw' WHERE id=$id"); $conn->query("UPDATE `user` SET password='$pw' WHERE id=$id");
} }
json_out(['success'=>true]); json_out(['success'=>true]);
} }
if ($aksi === 'hapus') { if ($aksi === 'hapus') {
$id=(int)($_POST['id']??0); $id=(int)($_POST['id']??0);
$conn->query("DELETE FROM user WHERE id=$id"); $conn->query("DELETE FROM `user` WHERE id=$id");
json_out(['success'=>true]); json_out(['success'=>true]);
} }
if ($aksi === 'roles') { if ($aksi === 'roles') {
$res=$conn->query("SELECT * FROM role"); $rows=[]; $res=$conn->query("SELECT * FROM `role`"); $rows=[];
while($r=$res->fetch_assoc()) $rows[]=$r; while($r=$res->fetch_assoc()) $rows[]=$r;
json_out($rows); json_out($rows);
} }
+3 -7
View File
@@ -1,13 +1,9 @@
FROM php:8.2-apache FROM php:8.2-apache
RUN docker-php-ext-install mysqli pdo pdo_mysql \ RUN docker-php-ext-install mysqli
&& a2enmod rewrite
WORKDIR /var/www/html
COPY . /var/www/html/ COPY . /var/www/html/
RUN mkdir -p /var/www/html/05/uploads/bukti \ RUN chown -R www-data:www-data /var/www/html
&& chown -R www-data:www-data /var/www/html
CMD ["apache2-foreground"] EXPOSE 80
+2
View File
@@ -0,0 +1,2 @@
FROM mysql:8.4
COPY ./migrations /docker-entrypoint-initdb.d/
+54 -25
View File
@@ -1,37 +1,66 @@
services: services:
app: app:
build: . build:
ports: context: .
dockerfile: Dockerfile
expose:
- "80" - "80"
volumes:
- app_uploads:/var/www/html/05/uploads
environment: environment:
# Koneksi database menunjuk ke container 'db' DB_HOST: db
- DB_HOST=db DB_PORT: 3306
- DB_USER=root DB_DATABASE: webgis_spbu
- DB_PASSWORD=rootpassword DB_USERNAME: webgis_user
# Nama database utama DB_PASSWORD: webgis_password
- DB_NAME=uas_06
depends_on: depends_on:
db: migrate:
condition: service_healthy condition: service_completed_successfully
restart: always restart: unless-stopped
db: db:
image: mysql:8.0 build:
context: .
dockerfile: Dockerfile.db
image: webgis-db
environment: environment:
- MYSQL_ROOT_PASSWORD=rootpassword MYSQL_DATABASE: webgis_spbu
- MYSQL_DATABASE=uas_06 MYSQL_USER: webgis_user
ports: MYSQL_PASSWORD: webgis_password
MYSQL_ROOT_PASSWORD: root_password
expose:
- "3306" - "3306"
volumes: volumes:
- db_data:/var/lib/mysql - webgis_db_data:/var/lib/mysql
# Auto-import database terpadu restart: unless-stopped
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
healthcheck: migrate:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"] image: mysql:8.4
interval: 10s environment:
timeout: 5s MYSQL_PWD: root_password
retries: 5 depends_on:
restart: always - db
command: >
sh -c "
until mysqladmin ping -h db -uroot --password=$$MYSQL_PWD --silent 2>/dev/null; do
echo 'Waiting for database...';
sleep 2;
done;
echo 'Database is ready, all internal migrations done.';
"
restart: "no"
phpmyadmin:
image: phpmyadmin:latest
expose:
- "80"
environment:
PMA_HOST: db
PMA_PORT: 3306
depends_on:
- db
restart: unless-stopped
volumes: volumes:
db_data: webgis_db_data:
app_uploads:
+14 -16
View File
@@ -1,5 +1,3 @@
CREATE DATABASE IF NOT EXISTS `uas_06` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE `uas_06`;
-- ============================================================ -- ============================================================
-- Bawaan 05 -- Bawaan 05
@@ -28,19 +26,19 @@ DROP TABLE IF EXISTS `role`;
SET FOREIGN_KEY_CHECKS = 1; SET FOREIGN_KEY_CHECKS = 1;
-- ── 1. ROLE ───────────────────────────────────────────────── -- ── 1. ROLE ─────────────────────────────────────────────────
CREATE TABLE role ( CREATE TABLE `role` (
id INT AUTO_INCREMENT PRIMARY KEY, id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(50) NOT NULL, nama VARCHAR(50) NOT NULL,
deskripsi TEXT deskripsi TEXT
) ENGINE=InnoDB; ) ENGINE=InnoDB;
INSERT INTO role (nama, deskripsi) VALUES INSERT INTO `role` (nama, deskripsi) VALUES
('masyarakat', 'Hanya dapat melihat data dan membuat laporan'), ('masyarakat', 'Hanya dapat melihat data dan membuat laporan'),
('pengurus', 'Input & update data penduduk, verifikasi laporan, salurkan bantuan'), ('pengurus', 'Input & update data penduduk, verifikasi laporan, salurkan bantuan'),
('pimpinan', 'Read-only, monitoring dashboard'); ('pimpinan', 'Read-only, monitoring dashboard');
-- ── 2. USER ───────────────────────────────────────────────── -- ── 2. USER ─────────────────────────────────────────────────
CREATE TABLE user ( CREATE TABLE `user` (
id INT AUTO_INCREMENT PRIMARY KEY, id INT AUTO_INCREMENT PRIMARY KEY,
nama VARCHAR(100) NOT NULL, nama VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE, email VARCHAR(100) NOT NULL UNIQUE,
@@ -48,11 +46,11 @@ CREATE TABLE user (
role_id INT NOT NULL DEFAULT 1, role_id INT NOT NULL DEFAULT 1,
aktif TINYINT(1) DEFAULT 1, aktif TINYINT(1) DEFAULT 1,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (role_id) REFERENCES role(id) FOREIGN KEY (role_id) REFERENCES `role`(id)
) ENGINE=InnoDB; ) ENGINE=InnoDB;
-- Password untuk semua akun demo: "password" -- Password untuk semua akun demo: "password"
INSERT INTO user (nama, email, password, role_id) VALUES INSERT INTO `user` (nama, email, password, role_id) VALUES
('Admin Utama', 'admin@uas.id', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 2), ('Admin Utama', 'admin@uas.id', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 2),
('Pimpinan Daerah', 'pimpinan@uas.id', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 3), ('Pimpinan Daerah', 'pimpinan@uas.id', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 3),
('Warga Biasa', 'warga@uas.id', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 1), ('Warga Biasa', 'warga@uas.id', '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', 1),
@@ -70,7 +68,7 @@ CREATE TABLE rumah_ibadah (
radius DOUBLE DEFAULT 500, radius DOUBLE DEFAULT 500,
user_id INT, user_id INT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES user(id) ON DELETE SET NULL FOREIGN KEY (user_id) REFERENCES `user`(id) ON DELETE SET NULL
) ENGINE=InnoDB; ) ENGINE=InnoDB;
INSERT INTO rumah_ibadah (nama, jenis, kontak, alamat, lat, lng, radius, user_id) VALUES INSERT INTO rumah_ibadah (nama, jenis, kontak, alamat, lat, lng, radius, user_id) VALUES
@@ -192,7 +190,7 @@ CREATE TABLE histori_bantuan (
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (penduduk_id) REFERENCES penduduk(id) ON DELETE CASCADE, FOREIGN KEY (penduduk_id) REFERENCES penduduk(id) ON DELETE CASCADE,
FOREIGN KEY (bantuan_id) REFERENCES bantuan(id) ON DELETE CASCADE, FOREIGN KEY (bantuan_id) REFERENCES bantuan(id) ON DELETE CASCADE,
FOREIGN KEY (disalurkan_oleh) REFERENCES user(id) ON DELETE SET NULL FOREIGN KEY (disalurkan_oleh) REFERENCES `user`(id) ON DELETE SET NULL
) ENGINE=InnoDB; ) ENGINE=InnoDB;
INSERT INTO histori_bantuan (penduduk_id,bantuan_id,tanggal,jumlah,status,disalurkan_oleh,keterangan) VALUES INSERT INTO histori_bantuan (penduduk_id,bantuan_id,tanggal,jumlah,status,disalurkan_oleh,keterangan) VALUES
@@ -219,7 +217,7 @@ CREATE TABLE laporan (
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (penduduk_id) REFERENCES penduduk(id) ON DELETE SET NULL, FOREIGN KEY (penduduk_id) REFERENCES penduduk(id) ON DELETE SET NULL,
FOREIGN KEY (diverifikasi_oleh) REFERENCES user(id) ON DELETE SET NULL FOREIGN KEY (diverifikasi_oleh) REFERENCES `user`(id) ON DELETE SET NULL
) ENGINE=InnoDB; ) ENGINE=InnoDB;
INSERT INTO laporan (pelapor,penduduk_id,deskripsi,lat,lng,urgensi,status) VALUES INSERT INTO laporan (pelapor,penduduk_id,deskripsi,lat,lng,urgensi,status) VALUES
@@ -239,7 +237,7 @@ CREATE TABLE log_aktivitas (
keterangan TEXT, keterangan TEXT,
ip_address VARCHAR(45), ip_address VARCHAR(45),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES user(id) ON DELETE SET NULL FOREIGN KEY (user_id) REFERENCES `user`(id) ON DELETE SET NULL
) ENGINE=InnoDB; ) ENGINE=InnoDB;
INSERT INTO log_aktivitas (user_id,aksi,tabel,data_id,keterangan) VALUES INSERT INTO log_aktivitas (user_id,aksi,tabel,data_id,keterangan) VALUES
@@ -256,8 +254,8 @@ CREATE TABLE pesan (
isi TEXT NOT NULL, isi TEXT NOT NULL,
dibaca TINYINT(1) DEFAULT 0, dibaca TINYINT(1) DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (dari_user) REFERENCES user(id) ON DELETE CASCADE, FOREIGN KEY (dari_user) REFERENCES `user`(id) ON DELETE CASCADE,
FOREIGN KEY (ke_user) REFERENCES user(id) ON DELETE SET NULL FOREIGN KEY (ke_user) REFERENCES `user`(id) ON DELETE SET NULL
) ENGINE=InnoDB; ) ENGINE=InnoDB;
INSERT INTO pesan (dari_user,ke_user,isi,dibaca) VALUES INSERT INTO pesan (dari_user,ke_user,isi,dibaca) VALUES
@@ -301,7 +299,7 @@ CREATE TABLE jalan(
nama_jalan VARCHAR(150), nama_jalan VARCHAR(150),
status VARCHAR(50), status VARCHAR(50),
panjang DOUBLE, panjang DOUBLE,
geom LINESTRING NOT NULL, geom LINESTRING NOT NULL SRID 0,
SPATIAL INDEX idx_jalan(geom) SPATIAL INDEX idx_jalan(geom)
); );
@@ -310,7 +308,7 @@ CREATE TABLE parsil(
pemilik VARCHAR(100), pemilik VARCHAR(100),
status VARCHAR(50), status VARCHAR(50),
luas DOUBLE, luas DOUBLE,
geom POLYGON NOT NULL, geom POLYGON NOT NULL SRID 0,
SPATIAL INDEX idx_parsil(geom) SPATIAL INDEX idx_parsil(geom)
); );
@@ -318,7 +316,7 @@ CREATE TABLE jalan_rusak(
id INT AUTO_INCREMENT PRIMARY KEY, id INT AUTO_INCREMENT PRIMARY KEY,
nama_titik VARCHAR(100), nama_titik VARCHAR(100),
keterangan TEXT, keterangan TEXT,
geom POINT NOT NULL, geom POINT NOT NULL SRID 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
SPATIAL INDEX idx_rusak(geom) SPATIAL INDEX idx_rusak(geom)
); );