Migration dan Seed di CodeIgniter sudah mulai mudah untuk digunakan, khususnya di CI 4 kalian sudah bisa menggunakannya dengan command tool spark
peran Migration & Seed sangat penting sekali dalam pengembangan aplikasi
yang harusnya membuat tabel secara manual sekarang tinggal menggunakan migration maka bisa diselesaikan dengan cepat
yang harusnya mengisi data dummy satu-satu sekarang sudah bisa mengisinya menggunakan seed
jadi menurut saya ini penting untuk dipelajari, mengingat saya sering membuat table lewat aplikasi databasenya langsung membuat saya tergoda untuk menggunakan fitur ini, apalagi fitur seednya yang membuat saya tidak perlu membuat controller terlebih dahulu tinggal isi saja datanya lewat command dan beres
selain hal diatas migration juga berguna untuk mempermudah aplikasi untuk didevelop secara team, misalnya ketika ada perubahan struktur table kalian hanya perlu memberitahu team untuk melakukan migrasi table
Migration
Migration artinya migrasi
Migration di CI 4 maksudnya digunakan untuk migrasi table pada sebuah database
Jadi nantinya kalian bisa membuat, mengupdate, menghapus table melalui perintah php
dengan begitu proses yang berkaitan dengan table database akan lebih cepat karena bisa dilakukan dengan melalui kode
Membuat File Migration
untuk membuat migration mudah saja dilakukan, kalian hanya perlu menggunakan command tool spark yang sudah ada dengan mengetikan perintah
php spark make:migration nama_migration
misalnya saya ingin membuat migration untuk membuat table user, maka perintah yang harus saya ketikan yaitu php spark make:migration adduser
file migration akan dibuat secara sendirinya yang terletak didalam direktori 'app/Database/Migrations/' dengan format nama file 'YYYYMMDDHHIISS_AddUser'.php
Memahami Method Migration
terdapat 2 method yang tersedia ketika membuat migration melalui spark yaitu
up()untuk method up digunakan untuk membuat table
down()untuk method down digunakan untuk menghapus table
Praktek Menggunakan Migration
cara menggunakan migration mirip-mirip seperti membuat table secara manual, namun kali ini kita membuatnya memakai kode
jadi nantinya pasti akan ada penentuan tipe data, panjang data, penentuan primary data dan lainnya
untuk lebih jelasnya langsung saja kita praktekan
Langkah 1 (Mengatur database)untuk mengatur database dengan cepat kita gunakan konfigurasi file .env, file ini terletak diluar folder app jadi tinggal dibuka saja folder 'belajar_ci4' maka disitu akan terlihat file 'env'
saat pertama kali menginstall biasanya file .env masih dalam nama 'env' (belum ada titiknya) jadi dirubah dulu dengan menambahkan titik didepan kata env sehingga menjadi '.env'
setelah itu kita konfigurasi database yang berada didalam file .env
#--------------------------------------------------------------------
# DATABASE
#--------------------------------------------------------------------
database.default.hostname = localhost
database.default.database = belajar_ci4
database.default.username = root
database.default.password =
database.default.DBDriver = MySQLi
database.default.DBPrefix =
silahkan disesuaikan dengan konfigurasi aplikasi database yang kalian gunakan
Langkah 2 (Membuat Database)karena kita baru menyetting nama databasenya di file environment bukan berarti databasenya langsung terbuat otomatis, kita harus membuatnya secara manual atau dengan menggunakan command spark
disini saya akan menggunakan command spark, yaitu dengan mengetikan perintah
php spark db:create belajar_ci4
saat perintah dijalankan ketika berhasil akan muncul tulisan database "belajar_ci4" succesfully created.
ketikan perintah spark dibawah ini pada terminal / command kalian
php spark make:migration User
buka file migration yang sebelumnya dibuat berada pada direktori 'app/Database/Migrations/DATETIME_AddUser.php'
kemudian ganti dengan kode dibawah ini
<?php
namespace App\Database\Migrations;
use CodeIgniter\Database\Migration;
class AddUser extends Migration
{
public function up()
{
$this->forge->addField([
'id' => [
'type' => 'INT',
'constraint' => 100,
'unsigned' => true,
'auto_increment' => true,
],
'username' => [
'type' => 'VARCHAR',
'constraint' => '100',
],
'password' => [
'type' => 'VARCHAR',
'constraint' => '100',
],
'intro' => [
'type' => 'TEXT',
'null' => true
],
'type' => [
'type' => 'SET',
'constraint' => ['Free', 'Premium', 'VIP'],
'default' => 'Free',
]
]);
$this->forge->addKey('id', true);
$this->forge->createTable('user');
}
public function down()
{
$this->forge->dropTable('user');
}
}
Langkah 6 (Menjalankan Migration) ketikan perintah spark dibawah ini untuk menjalankan migration
php spark migrate
ketika berhasil maka akan memunculkan hasil Running all new migrations...Done migrations.
Langkah 7 (Mengecek database dan table)
setelah melakukan migrasi hal terakhir yang dilakukan adalah mengecek apakah migrasi berhasil dijalankan dan sesuai dengan yang diharapkan atau tidak
karna saya menggunakan database MySQL jadi saya mengeceknya pakai aplikasi phpmyadmin
buka browser dan ketikan http://localhost/phpmyadmin
kemudian cari database dengan nama 'belajar_ci4' kemudian klik untuk melihat detail tablenya
terlihat ada 2 table yang terbuat yaitu table migrations dan table user
khusus table migrations tidak perlu dihapus karena nantinya akan digunakan untuk proses rollback dan proses merekam jejak migrasi
sekarang coba klik table user yang pastinya sudah ada kolom dengan tipe data dan value yang telah kita buat sebelumnya di migrasi
Seeder
seed artinya bibit
Seed di CI 4 ditujukan untuk mengisi data pada sebuah table yang telah ada
jadi nantinya kalian bisa mengisi data dummy kedalam table hanya dengan mengetikan perintah saja, tanpa harus masuk keaplikasi databasenya
Membuat File Seeder
untuk membuat file seeder kalian tinggal menggunakan spark dengan perintah
php spark make:seeder nama_seed
misalnya saya ingin membuat seeder user, maka perintahnya yaitu
php spark make:seeder user
maka perintah diatas akan menghasilkan file seeder yang terletak di directory 'app/Database/Seeds' dengan nama file 'User.php'
Memahami Method Seeder
hanya ada 1 method saat membuat seeder melalui spark yaitu run()
method run ini nantinya akan di isi dengan perintah memasukan data ke database
Praktek Menggunakan Seeder
untuk lebih memahami lebih jauh lagi tentang seeder mari kita praktekan untuk membuat seeder dari table user yang sebelumnya telah dibuat
Langkah 1 (Membuat File Seeder) langsung saja kita mengetikan perintah spark untuk membuat seeder yaitu
php spark make:seeder user
buka file seeder yang telah dibuat terletak pada direktori 'app/Database/Seeds/User.php'
ubah isinya dengan kode dibawah ini
<?php
namespace App\Database\Seeds;
use CodeIgniter\Database\Seeder;
class User extends Seeder
{
public function run()
{
$data = [
'username' => 'irfan',
'password' => 'secret123',
'intro' => 'halo saya irfan,saat ini saya sedang belajar ci 4',
'type' => 'VIP',
];
$this->db->table('user')->insert($data);
}
}
Langkah 3 (Menjalankan Seeder) kita gunakan spark juga untuk menjalankan proses seedernya dengan mengetikan perintah
php spark db:seed user
Langkah 4 (Melihat Hasil Seednya)
untuk memastikan data masuk atau tidak maka kita harus mengeceknya kedatabase
buka browser dan ketikan http://localhost/phpmyadmin
kemudian pilih database 'belajar_ci4' dan pilih table 'user', ketika berhasil data akan masuk seperti gambar dibawah ini
Tambahan
perintah seeder yang saya buat diatas hanya memasukan 1 data saja, jika kalian ingin memasukan banyak data tinggal melakukan proses perulangan saja