Migrasi database dari SQLite3 ke MariaDB merupakan langkah penting yang sering dilakukan oleh pengembang aplikasi ketika kebutuhan sistem sudah melampaui kemampuan SQLite, atau ketika dibutuhkan fitur lanjutan yang hanya tersedia pada sistem RDBMS seperti MariaDB.
Beberapa alasan utama perlunya migrasi dari SQLite ke MariaDB antara lain:
-
Keterbatasan Skalabilitas SQLite kurang cocok untuk aplikasi dengan volume data besar atau kebutuhan akses multi-user secara simultan.
-
Fitur Lanjutan MariaDB menyediakan fitur-fitur seperti replikasi, partisi tabel, pengelolaan pengguna dan hak akses, serta performa query yang lebih optimal untuk data berskala besar.
-
Kebutuhan Integrasi Banyak aplikasi enterprise dan web server (misalnya LAMP stack) memiliki kompatibilitas yang lebih baik dengan MariaDB.
-
Keamanan dan Manajemen MariaDB mendukung pengelolaan hak akses yang lebih granular serta fitur audit log untuk kebutuhan keamanan dan pemantauan.
Persiapan #
Sebelum memulai proses migrasi, pastikan hal-hal berikut telah dilakukan:
-
Backup Database Selalu lakukan backup database SQLite untuk menghindari kehilangan data.
-
Persiapan Environment Pastikan MariaDB telah terinstal dan berjalan dengan baik pada server tujuan.
-
Menonaktifkan Layanan Aplikasi Hentikan sementara service aplikasi untuk menjaga konsistensi data selama proses migrasi.
Migrasi Database #
Terdapat dua metode yang dapat digunakan untuk melakukan migrasi database, yaitu menggunakan Docker dan script Python.
Menggunakan Docker #
Jalankan container menggunakan image ghcr.io/techouse/sqlite3-to-mysql dengan perintah berikut:
docker run -it \
--workdir $(pwd) \
--volume $(pwd):$(pwd) \
--network uptime-kuma_kuma_network \
--rm ghcr.io/techouse/sqlite3-to-mysql:latest \
--sqlite-file kuma.db \
--mysql-user uptimekuma \
--mysql-password your_secure_password \
--mysql-database kuma \
--mysql-host db
Pastikan parameter berikut telah disesuaikan:
--sqlite-file: nama atau path file database SQLite--mysql-userdan--mysql-password: kredensial MariaDB--mysql-database: nama database tujuan--mysql-host: hostname service MariaDB
Tunggu hingga proses migrasi selesai tanpa error.
Menggunakan Python #
Pastikan Python versi 3.6 atau lebih tinggi telah terinstal.
Clone repositori berikut:
git clone https://github.com/harshavmb/sqlite3tomysql.git
Masuk ke direktori sqlite3tomysql, lalu install dependensi yang diperlukan:
pip install mysql-connector-python
Edit variabel konfigurasi pada file migrate.py sesuai dengan environment Anda:
# Path ke file database SQLite
sqlite_database_file = 'kuma.db'
# Konfigurasi koneksi MariaDB / MySQL
mysql_connection_config = {
'host': 'localhost', # Host database
'user': 'uptimekuma', # Username database
'password': 'your_secure_password', # Password database
'database': 'kuma' # Nama database tujuan
}
Setelah konfigurasi selesai, jalankan script migrasi:
python3 migrate.py
Tunggu hingga proses migrasi selesai dan pastikan tidak ada error yang muncul.