Migration & Seeder pada CodeIgniter 4 (CI4)
๐งฉ Migration & Seeder pada CodeIgniter 4 (CI4)
Manajemen struktur dan data awal database dengan cara otomatis, efisien, dan mudah dipelihara.
Migration dan Seeder di CodeIgniter 4 membantu kita mengelola struktur dan data database tanpa perlu query SQL manual. Migration digunakan untuk membuat atau mengubah tabel, sedangkan Seeder digunakan untuk mengisi data awal seperti admin default atau data dummy.
๐ 1. Konsep Migration
Migration bekerja layaknya version control untuk database Anda. Setiap perubahan struktur tersimpan dalam file migration, sehingga pengembang lain dapat memperbarui database dengan mudah menggunakan perintah sederhana.
๐ ๏ธ Contoh Membuat Migration
Buka terminal pada root proyek Anda, lalu ketik:
php spark make:migration CreateUsersTableEdit file yang dihasilkan di folder app/Database/Migrations/ menjadi seperti ini:
<?php
namespace App\Database\Migrations;
use CodeIgniter\Database\Migration;
class CreateUsersTable extends Migration
{
public function up()
{
$this->forge->addField([
'id' => [
'type' => 'INT',
'constraint' => 11,
'unsigned' => true,
'auto_increment' => true,
],
'username' => [
'type' => 'VARCHAR',
'constraint' => 100,
],
'password' => [
'type' => 'VARCHAR',
'constraint' => 255,
],
'level' => [
'type' => 'ENUM("admin","user")',
'default' => 'user',
],
'created_at DATETIME DEFAULT CURRENT_TIMESTAMP',
]);
$this->forge->addKey('id', true);
$this->forge->createTable('users');
}
public function down()
{
$this->forge->dropTable('users');
}
}
โถ๏ธ Menjalankan Migration
Setelah selesai, jalankan perintah berikut untuk membuat tabel di database:
php spark migrateJika ingin membatalkan (rollback):
php spark migrate:rollback๐ฑ 2. Konsep Seeder
Seeder digunakan untuk mengisi data awal ke dalam tabel. Misalnya, saat pertama kali menjalankan aplikasi, Anda ingin otomatis membuat akun admin dan user.
๐ ๏ธ Membuat Seeder
Ketik perintah berikut di terminal:
php spark make:seeder UserSeederEdit file di app/Database/Seeds/UserSeeder.php:
<?php
namespace App\Database\Seeds;
use CodeIgniter\Database\Seeder;
class UserSeeder extends Seeder
{
public function run()
{
$data = [
[
'username' => 'admin',
'password' => password_hash('admin123', PASSWORD_DEFAULT),
'level' => 'admin'
],
[
'username' => 'user1',
'password' => password_hash('user123', PASSWORD_DEFAULT),
'level' => 'user'
]
];
$this->db->table('users')->insertBatch($data);
}
}
โถ๏ธ Menjalankan Seeder
Untuk mengisi data ke tabel users, jalankan perintah berikut:
php spark db:seed UserSeederโ๏ธ 3. Praktik Gabungan Migration & Seeder
Agar lebih efisien, Anda bisa menjalankan migration dan seeder sekaligus dalam satu langkah:
php spark migrate && php spark db:seed UserSeederDengan cara ini, database akan otomatis dibuat dan diisi data awal tanpa membuka phpMyAdmin.
๐งช 4. Latihan Praktik Langsung
Buka terminal dan pastikan Anda berada di folder proyek CI4 Anda.
Buat migration baru untuk tabel
productsmenggunakan perintah:php spark make:migration CreateProductsTable
Tambahkan field seperti
id,name,price, danstockdi dalam methodup().Jalankan migration:
php spark migrate
Selanjutnya buat seeder:
php spark make:seeder ProductSeeder
Isi file seeder dengan data contoh produk, lalu jalankan:
php spark db:seed ProductSeeder
Buka phpMyAdmin untuk melihat bahwa tabel
productssudah berisi data otomatis.
๐ก 5. Tips Tambahan
Gunakan Migration setiap kali mengubah struktur tabel agar dapat dilacak dan dibatalkan kapan saja.
Gunakan Seeder untuk data awal seperti akun admin, daftar kategori, atau data percobaan.
Kombinasikan dengan Model agar data dapat langsung digunakan di aplikasi Anda setelah migrasi.
โ Kesimpulan
Dengan Migration dan Seeder, pengelolaan database di CodeIgniter 4 menjadi lebih sistematis, cepat, dan mudah dikontrol. Anda tidak perlu lagi membuat tabel secara manual karena semua sudah dapat diatur dari terminal dengan satu perintah.
