102 lines
3.5 KiB
PHP
102 lines
3.5 KiB
PHP
<?php
|
|
mysqli_report(MYSQLI_REPORT_OFF);
|
|
|
|
$host = getenv('INFRA_DB_HOST') ?: (getenv('DB_HOST') ?: '127.0.0.1');
|
|
$port = (int) (getenv('INFRA_DB_PORT') ?: (getenv('DB_PORT') ?: 3306));
|
|
$user = getenv('INFRA_DB_USER') ?: (getenv('DB_USER') ?: 'root');
|
|
$pass = getenv('INFRA_DB_PASSWORD');
|
|
$pass = $pass !== false ? $pass : (getenv('DB_PASSWORD') ?: '');
|
|
$dbname = getenv('INFRA_DB_NAME') ?: 'db_infrastruktur';
|
|
|
|
// Koneksi tanpa DB dulu untuk buat DB jika belum ada
|
|
$conn = new mysqli($host, $user, $pass, '', $port);
|
|
if ($conn->connect_error) {
|
|
die("Koneksi gagal: " . $conn->connect_error);
|
|
}
|
|
|
|
// 1. Buat Database
|
|
$sql_db = "CREATE DATABASE IF NOT EXISTS `$dbname`";
|
|
if ($conn->query($sql_db) === TRUE) {
|
|
echo "Database $dbname siap.<br>";
|
|
} else {
|
|
echo "Error membuat database: " . $conn->error . "<br>";
|
|
}
|
|
|
|
// Gunakan database tersebut
|
|
$conn->select_db($dbname);
|
|
|
|
// 2. Buat Tabel tb_admin
|
|
$sql_admin = "CREATE TABLE IF NOT EXISTS tb_admin (
|
|
id INT(11) AUTO_INCREMENT PRIMARY KEY,
|
|
username VARCHAR(50) NOT NULL UNIQUE,
|
|
password VARCHAR(255) NOT NULL,
|
|
role VARCHAR(50) NOT NULL DEFAULT 'infrastruktur'
|
|
)";
|
|
if ($conn->query($sql_admin) === TRUE) {
|
|
echo "Tabel tb_admin siap.<br>";
|
|
} else {
|
|
echo "Error membuat tb_admin: " . $conn->error . "<br>";
|
|
}
|
|
|
|
// Insert admin infrastruktur if not exist
|
|
$check_admin = $conn->query("SELECT id FROM tb_admin WHERE username='admin'");
|
|
if ($check_admin->num_rows == 0) {
|
|
// Password "password"
|
|
$pw = password_hash("password", PASSWORD_DEFAULT);
|
|
$conn->query("INSERT INTO tb_admin (username, password, role) VALUES ('admin', '$pw', 'infrastruktur')");
|
|
echo "Akun 'admin' ditambahkan.<br>";
|
|
}
|
|
|
|
// 3. Buat Tabel tb_spbu
|
|
$sql_spbu = "CREATE TABLE IF NOT EXISTS tb_spbu (
|
|
id INT(11) AUTO_INCREMENT PRIMARY KEY,
|
|
nama_spbu VARCHAR(150) NOT NULL,
|
|
no_wa VARCHAR(20) DEFAULT NULL,
|
|
buka_24jam ENUM('Ya','Tidak') DEFAULT 'Tidak',
|
|
latitude DECIMAL(11,8) NOT NULL,
|
|
longitude DECIMAL(11,8) NOT NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
|
)";
|
|
if ($conn->query($sql_spbu) === TRUE) {
|
|
echo "Tabel tb_spbu siap.<br>";
|
|
} else {
|
|
echo "Error membuat tb_spbu: " . $conn->error . "<br>";
|
|
}
|
|
|
|
// 4. Buat Tabel tb_jalan
|
|
$sql_jalan = "CREATE TABLE IF NOT EXISTS tb_jalan (
|
|
id INT(11) AUTO_INCREMENT PRIMARY KEY,
|
|
nama_jalan VARCHAR(200) NOT NULL,
|
|
status_jalan ENUM('Nasional','Provinsi','Kabupaten') NOT NULL,
|
|
panjang_jalan VARCHAR(50) DEFAULT NULL,
|
|
geojson LONGTEXT NOT NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
|
)";
|
|
if ($conn->query($sql_jalan) === TRUE) {
|
|
echo "Tabel tb_jalan siap.<br>";
|
|
} else {
|
|
echo "Error membuat tb_jalan: " . $conn->error . "<br>";
|
|
}
|
|
|
|
// 5. Buat Tabel tb_kavling
|
|
$sql_kavling = "CREATE TABLE IF NOT EXISTS tb_kavling (
|
|
id INT(11) AUTO_INCREMENT PRIMARY KEY,
|
|
nama_kavling VARCHAR(200) NOT NULL,
|
|
status_kepemilikan ENUM('SHM','HGB','HGU','HP') NOT NULL,
|
|
luas_tanah VARCHAR(50) DEFAULT NULL,
|
|
geojson LONGTEXT NOT NULL,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
|
|
)";
|
|
if ($conn->query($sql_kavling) === TRUE) {
|
|
echo "Tabel tb_kavling siap.<br>";
|
|
} else {
|
|
echo "Error membuat tb_kavling: " . $conn->error . "<br>";
|
|
}
|
|
|
|
echo "<br><h3>Migrasi Selesai!</h3>";
|
|
echo "<a href='index.php'>Kembali ke Halaman Utama</a>";
|
|
?>
|