mirror of
https://github.com/dyzulk/trustlab-api.git
synced 2026-01-26 05:15:35 +07:00
35 lines
1.6 KiB
Markdown
35 lines
1.6 KiB
Markdown
---
|
|
description: Panduan Manajemen Database (Multi-Database Architecture)
|
|
---
|
|
|
|
# Aturan & Panduan Database
|
|
|
|
Proyek ini menggunakan arsitektur **Multi-Database** untuk memisahkan data User/App dengan data High-Security (Certificate Authority).
|
|
|
|
## Arsitektur
|
|
|
|
1. **Main Database Connection (`mysql`)**
|
|
* **Kegunaan**: Menyimpan data aplikasi umum (`users`, `tickets`, `certificates` (leaf), dll).
|
|
* **Reset Policy**: Boleh di-reset saat development (`php artisan migrate:fresh --seed`).
|
|
* **Dependency**: Terikat dengan logic aplikasi utama.
|
|
|
|
2. **CA Database Connection (`mysql_ca`)**
|
|
* **Kegunaan**: KHUSUS untuk `ca_certificates` (Root & Intermediate CA).
|
|
* **Reset Policy**: **DILARANG RESET** sembarangan. Command `migrate:fresh` default TIDAK akan menyentuh database ini.
|
|
* **Driver**: Menggunakan `mysql` di Production (sama seperti Main DB), bukan SQLite atau D1 (kecuali ada instruksi spesifik).
|
|
|
|
## Aturan Migrasi
|
|
|
|
1. **Pembuatan Tabel Baru**:
|
|
* Tentukan tabel masuk ke kategori mana (App vs CA).
|
|
* Jika CA, gunakan `Schema::connection('mysql_ca')->create(...)`.
|
|
* Jika App, gunakan `Schema::create(...)` biasa.
|
|
|
|
2. **Data Safety**:
|
|
* Sebelum menjalankan query raw atau operasi destructive, pastikan koneksi yang dipilih benar.
|
|
* Gunakan command `php artisan ca:migrate-data` hanya jika perlu memindahkan data antar database.
|
|
|
|
## Cloudflare D1
|
|
* Saat ini D1 **TIDAK DIGUNAKAN** untuk kompatibilitas penuh dengan server berbasis VPS/Hosting standar.
|
|
* Jangan mengusulkan migrasi ke D1 kecuali infrastruktur berpindah ke Cloudflare Workers sepenuhnya.
|