SQLite vs PostgreSQL vs MySQL untuk backend self-hosted
SQLite vs PostgreSQL vs MySQL untuk backend self-hosted? Panduan singkat memilihnya, lengkap dengan batas tiap database di Kanesh.
Untuk backend self-hosted, mulai dengan SQLite kalau semuanya berjalan di satu mesin untuk tim kecil, pilih PostgreSQL untuk produksi, beberapa workspace, atau saat layanan lain berbagi data, dan pakai MySQL kalau kamu sudah menjalankannya. Di Kanesh, SQLite adalah default, dan PostgreSQL serta MySQL sama-sama didukung penuh.
Tiga pilihan sekilas
| SQLite | PostgreSQL | MySQL | |
|---|---|---|---|
| Dukungan Kanesh | Default, penuh | Penuh | Penuh |
| Berjalan sebagai | File di samping Kanesh | Server database terpisah | Server database terpisah |
| Layanan tambahan | Tidak ada | Layanan PostgreSQL atau host terkelola | Layanan MySQL atau host terkelola |
| Cocok untuk | Satu mesin, tim kecil, demo | Produksi, banyak workspace | Server MySQL yang sudah ada |
Kapan SQLite pilihan yang tepat
SQLite tidak butuh konfigurasi apa pun. Kanesh menyimpan database di DATA_DIR/kanesh.db, atau di SQLITE_PATH kalau kamu menyetelnya, jadi tidak ada container kedua dan tidak ada connection string. Backup volume kanesh-data dan seluruh instalasi sudah ter-backup.
docker run -p 127.0.0.1:8080:8080 -v kanesh-data:/data kanesh Pilih untuk prototipe, demo, alat internal di satu server, dan proyek kecil yang cukup dengan satu mesin.
Kapan PostgreSQL pilihan yang tepat
Pilih PostgreSQL saat database sebaiknya ada di host sendiri, saat kamu sudah mem-backup dan memantaunya, saat layanan atau laporan lain membaca tabel yang sama, atau saat kamu menjalankan banyak workspace. Dua variable cukup untuk memilihnya:
docker run -p 127.0.0.1:8080:8080 -v kanesh-data:/data \
-e DATABASE_DRIVER=postgres \
-e DATABASE_URL="postgres://kanesh:secret@db.internal:5432/kanesh?sslmode=require" \
kanesh Kapan MySQL masuk akal
Pilih MySQL saat organisasimu sudah menjalankan server MySQL dan kamu ingin Kanesh memakainya. MySQL memakai DSN go-sql-driver, bukan URL mysql://:
docker run -p 127.0.0.1:8080:8080 -v kanesh-data:/data \
-e DATABASE_DRIVER=mysql \
-e DATABASE_URL="kanesh:secret@tcp(db.internal:3306)/kanesh" \
kanesh Daftar keputusan singkat
- Satu mesin dan tim kecil? SQLite.
- Trafik produksi, beberapa workspace, atau host database terpisah? PostgreSQL.
- Sudah punya server MySQL? MySQL.
- Ragu? Mulai di SQLite dan pindah nanti.
Kalau database mati
Kalau kamu memilih PostgreSQL atau MySQL dan Kanesh tidak bisa menjangkaunya, Kanesh berhenti dengan pesan error. Ia tidak pindah ke SQLite, jadi kamu tidak pernah menulis data ke file lokal secara tidak sengaja.
Pindah belakangan
Kamu bisa mulai di SQLite dan pindah ke PostgreSQL dengan mengekspor dan mengimpor record. Kanesh menangani CSV dan JSON dengan batas ukuran. Buat dulu koleksi dan tipe field di instalasi baru, lalu impor, dan uji dengan satu koleksi kecil sebelum memindahkan sisanya.
FAQ
Database mana yang sebaiknya saya pilih untuk Kanesh?
Pakai SQLite untuk satu mesin dan tim kecil, dan PostgreSQL untuk produksi atau banyak workspace. Pakai MySQL kalau kamu sudah menjalankan server MySQL.
Apakah SQLite cukup untuk produksi?
Panduan database Kanesh mencantumkan SQLite untuk satu mesin, tim kecil, dan demo, serta PostgreSQL untuk produksi dan banyak workspace. Kalau proyekmu muat di satu mesin dan tim kecil, SQLite adalah pilihan yang didukung dengan fitur lengkap. Kalau tidak, pakai PostgreSQL.
Apakah MySQL didukung sebaik PostgreSQL?
Panduan database mencantumkan keduanya sebagai didukung penuh. Lihat setup database untuk detail terbaru dan format koneksinya.
Langkah berikutnya
Ikuti Memulai dan pilih databasemu lewat flag instalasi. Untuk melihat bagaimana backend lain menangani database, baca Kanesh vs PocketBase yang memakai SQLite tertanam, atau Kanesh vs Strapi yang mendukung SQLite, PostgreSQL, MySQL, dan MariaDB.


