4.5 KiB
Executable File
4.5 KiB
Executable File
📊 Database Import Guide untuk CKB Laravel Application
🚀 Quick Start (Paling Mudah)
Jika Anda baru pertama kali setup aplikasi:
# Jalankan quick setup yang otomatis import database
./docker-quick-setup.sh dev
📥 Manual Import Database
1. Import ke Development Environment
# Pastikan containers berjalan terlebih dahulu
./docker-start.sh dev up
# Import database ckb.sql
./docker-import-db.sh dev
# Atau import file SQL lain
./docker-import-db.sh dev nama-file-backup.sql
2. Import ke Production Environment
# Start production environment
./docker-start.sh prod up
# Import database
./docker-import-db.sh prod
# Atau dengan file khusus
./docker-import-db.sh prod production-backup.sql
🔄 Auto Import (Recommended untuk First Time Setup)
Ketika Anda menjalankan Docker containers untuk pertama kali, file ckb.sql akan otomatis diimport ke database. Ini terjadi karena:
- File
ckb.sqldi-mount ke/docker-entrypoint-initdb.d/01-init.sqldi MySQL container - MySQL otomatis menjalankan semua file
.sqldi direktori tersebut saat inisialisasi - Auto import hanya terjadi jika database kosong/belum ada
🛠️ Troubleshooting Import
Problem: Database tidak terimport otomatis
Solusi:
# 1. Stop containers
docker-compose down
# 2. Hapus volume database (HATI-HATI: akan hapus data!)
docker-compose down -v
# 3. Start ulang (akan trigger auto import)
docker-compose up -d
# 4. Atau import manual
./docker-import-db.sh dev
Problem: Permission denied saat import
Solusi:
# Pastikan script executable
chmod +x docker-import-db.sh
chmod +x docker-quick-setup.sh
# Pastikan file SQL readable
chmod 644 ckb.sql
Problem: Database terlalu besar, import timeout
Solusi:
# Import langsung ke container dengan timeout yang lebih besar
docker-compose exec -T db mysql -u root -proot ckb_db < ckb.sql
# Atau split file SQL jika sangat besar
split -l 10000 ckb.sql ckb_split_
# Kemudian import satu per satu
📋 Verifikasi Import Berhasil
1. Cek via phpMyAdmin
- Buka http://localhost:8080
- Login dengan: server=db, username=root, password=root
- Pilih database
ckb_db - Lihat tabel yang sudah terimport
2. Cek via Command Line
# Lihat daftar tabel
docker-compose exec db mysql -u root -proot -e "USE ckb_db; SHOW TABLES;"
# Hitung jumlah tabel
docker-compose exec db mysql -u root -proot -e "USE ckb_db; SELECT COUNT(*) as total_tables FROM information_schema.tables WHERE table_schema='ckb_db';"
# Lihat contoh data dari salah satu tabel
docker-compose exec db mysql -u root -proot -e "USE ckb_db; SELECT * FROM users LIMIT 5;"
3. Test Aplikasi Laravel
# Cek koneksi database dari Laravel
docker-compose exec app php artisan tinker
# Di dalam tinker:
# DB::connection()->getPdo();
# \App\Models\User::count();
💾 Backup Database
Backup Development
# Backup dengan timestamp
docker-compose exec db mysqldump -u root -proot ckb_db > backup_dev_$(date +%Y%m%d_%H%M%S).sql
# Backup sederhana
docker-compose exec db mysqldump -u root -proot ckb_db > backup_current.sql
Backup Production
# Backup production database
docker-compose -f docker-compose.prod.yml exec db mysqldump -u root -p ckb_production > backup_prod_$(date +%Y%m%d_%H%M%S).sql
🔄 Replace Database dengan Backup Baru
# 1. Backup database saat ini (safety)
docker-compose exec db mysqldump -u root -proot ckb_db > backup_before_replace.sql
# 2. Import database baru
./docker-import-db.sh dev new-backup.sql
# 3. Clear Laravel cache
docker-compose exec app php artisan cache:clear
docker-compose exec app php artisan config:clear
📝 Notes Penting
- File ckb.sql: Pastikan file ini selalu ada di root project untuk auto-import
- Backup Safety: Script import otomatis membuat backup sebelum replace database
- Environment: Selalu pastikan Anda menggunakan environment yang benar (dev/prod)
- Permissions: Database user harus punya permission CREATE, DROP, INSERT untuk import
- Size Limit: File SQL besar (>100MB) mungkin perlu setting timeout MySQL yang lebih besar
🎯 Best Practices
- Selalu backup sebelum import database baru
- Test di development dulu sebelum import ke production
- Gunakan quick setup untuk setup pertama kali
- Monitor logs saat import:
docker-compose logs -f db - Verify data setelah import berhasil
Untuk bantuan lebih lanjut, lihat file DOCKER-README.md atau docker-import-db.sh --help