Upload perdana untuk deploy

This commit is contained in:
2026-06-11 13:17:31 +07:00
parent 5857b15aec
commit 72133d0a9a
63 changed files with 10057 additions and 457 deletions
+40
View File
@@ -19,6 +19,46 @@ $options = [
try {
$pdo = new PDO($dsn, DB_USER, DB_PASS, $options);
// ============================================================
// AUTO-MIGRATION SCRIPT (Sesuai Permintaan)
// ============================================================
// 1. Buat tabel users jika belum ada (fallback)
$pdo->exec("CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL,
role ENUM('admin','petugas','guest') NOT NULL DEFAULT 'guest',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB");
// 2. Cek dan tambahkan kolom baru pada tabel users
$columns = $pdo->query("SHOW COLUMNS FROM users")->fetchAll(PDO::FETCH_COLUMN);
if (!in_array('email', $columns)) {
$pdo->exec("ALTER TABLE users ADD COLUMN email VARCHAR(150) UNIQUE NULL AFTER username");
}
if (!in_array('nama_lengkap', $columns)) {
$pdo->exec("ALTER TABLE users ADD COLUMN nama_lengkap VARCHAR(150) NULL AFTER email");
}
if (!in_array('status', $columns)) {
// Update user lama menjadi active terlebih dahulu jika diperlukan, tapi defaultnya active
$pdo->exec("ALTER TABLE users ADD COLUMN status ENUM('pending', 'active') NOT NULL DEFAULT 'active' AFTER role");
}
if (!in_array('auth_provider', $columns)) {
$pdo->exec("ALTER TABLE users ADD COLUMN auth_provider ENUM('local', 'google') NOT NULL DEFAULT 'local' AFTER status");
}
// 3. Buat tabel settings
$pdo->exec("CREATE TABLE IF NOT EXISTS settings (
setting_key VARCHAR(50) PRIMARY KEY,
setting_value VARCHAR(255) NOT NULL
) ENGINE=InnoDB");
// 4. Masukkan data default settings jika belum ada
$pdo->exec("INSERT IGNORE INTO settings (setting_key, setting_value) VALUES ('show_demo_accounts', '1')");
} catch (PDOException $e) {
http_response_code(500);
die(json_encode([