Mempelajari Migration & Seed CodeIgniter 4

irfan-photo irfan 3 yang lalu

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

mempelajari migration CI 4

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.

Langkah 3 (Membuat Migration)

ketikan perintah spark dibawah ini pada terminal / command kalian
php spark make:migration User

Langkah 4 (Mengedit File Migration)

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.

menjalankan spark migration ci 4

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

hasil menjalankan migration ci 4

Seeder

mempelajari seed codeigniter 4

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

Langkah 2 (Mengedit File Seeder)

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

menjalankan spark seeder ci 4

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

hasil seeder ci 4

Tambahan

perintah seeder yang saya buat diatas hanya memasukan 1 data saja, jika kalian ingin memasukan banyak data tinggal melakukan proses perulangan saja

Dilihat 1.27Kx
Terakhir diupdate 03/September/2022 02:12 AM
Buka Diskusi