Belajar CodeIgniter 4 #4 : Membuat Migration dan Seeding

Setelah kita memahami konsep MVC, sekarang kita akan belajar cara membuat migration dan seeding di CodeIgniter 4. Tapi sebelum itu, apa sih pengertian dari migration dan seeding ?

Migration adalah cara mudah untuk kita dalam membuat maupun mengubah database secara struktur dan terorganisir. Hal ini bertujuan untuk mempermudah tim kita nantinya dalam menentukan dan berbagi definisi skema database aplikasi.

Sedangkan, seeding adalah cara mudah untuk kita dalam membuat data ke dalam database. Apalagi saat tahap pengembangan skema database selalu berganti-ganti. Daripada kita memasukkan data ke dalam database secara manual, sekarang kita bisa dengan mudah membuat dummy data sebanyak mungkin sesuai dengan keinginan kita.

Migration CodeIgniter 4

Sekarang, kita sudah paham kegunaan dari migration. Selanjutnya, kita akan mencoba membuat database migration di CodeIgniter 4. Tetapi, disini saya akan membagi beberapa bahasan mengenai migration, antaralain nama file migration, membuat migration, skema migration dan perintah migration.

Nama File Migration

Setiap migration yang dibuat kalian bisa menyimpannya di app/Database/Migrations. Untuk nama file migration biasanya diberi nomor menggunakan stempel waktu saat migrasi dibuat dalam format YYYYMMDDHHIISS. Misalnya yaitu, 20121031100537. Hal ini bertujuan untuk mencegah konflik penomoran saat kita bekerja secara team.

Setelah itu dilanjutkan dengan garis bawah dan nama deskriptif untuk migrasi serta diakhiri .php. Misalnya yaitu 20211031100537_add_blog.php

Selain itu juga tahun, bulan, dan tanggal dapat dipisahkan dengan tanda hubung, garis bawah, atau tidak sama sekali. Misalnya yaitu 2021-10-31-100538_add_blog.php atau 2021_10_31_100539_add_blog.php

Membuat Migration

CodeIgniter mempermudah kita dalam membuat migration. Kita bisa menggunakan perintah php spark make:migration <namaclass>

Jalankan perintah berikut di terminal kalian dan ubah <namaclass> menjadi nama deskriptif migrasi. Misalnya yaitu CodeIgniter mempermudah kita dalam mebuat migration. Kita bisa menggunakan perintah php spark make:migration AddBlog

Nantinya CodeIgniter akan membuatkan migration untuk kita. Kalian bisa mengeceknya di app/Database/Migrations.

Skema Migration

Untuk mebuat skema di CodeIgniter 4, kita bisa menggunakan database forge. Dengan database forge kita bisa membuat database baru dengan perintah berikut $this->forge->createTable('namatable');

Selain itu, kita juga bisa drop database yang telah kita buat dengan melakukan perintah $this->forge->dropTable('namatable');

Misalnya kita ingin membuat skema untuk database yang barusan kita buat yaitu AddBlog. Pertama buka file migration terlebih dahulu. Nantinya akan muncul tampilan migrationnya seperti berikut.

<?php

namespace App\Database\Migrations;

use CodeIgniter\Database\Migration;

class AddBlog extends Migration
{
    public function up()
    {
        //
    }

    public function down()
    {
        //
    }
}

Pada bagian public function up() kita bisa mengisinya dengan skema database yang akan kita buat dengan menggunakan forge.

public function up()
    {
        $this->forge->addField([
            'blog_id'          => [
                'type'           => 'INT',
                'constraint'     => 5,
                'unsigned'       => true,
                'auto_increment' => true,
            ],
            'blog_title'       => [
                'type'       => 'VARCHAR',
                'constraint' => '100',
            ],
            'blog_description' => [
                'type' => 'TEXT',
                'null' => true,
            ],
        ]);
        $this->forge->addKey('blog_id', true);
        $this->forge->createTable('blog');
    }

Pada bagian $this->forge->addField kita bisa mengisi dengan kolum yang akan dibuat beserta tipe datanya.

Sedangkan pada bagian, public function down() kita bisa mengisi dengan perintah drop pada forge seperti berikut.

public function down()
    {
        $this->forge->dropTable('blog');
    }

Dan terakhir untuk menjalankan migration kita bisa menggunakan perintah php spark migrate pada terminal. Jika sudah kalian bisa mengecek databasenya dan disanakan akan terdapat table baru dengan nama blog.

membuat migration di codeigniter 4

Perintah pada Migration

  • php spark migrate:rollback untuk menghapus data yang ada di database
  • php spark migrate:refresh untuk menjalankan migrations kembali, tetapi sebelumnya akan menghapus semua data yang ada di database
  • php spark migrate:status untuk melihat status migrations dan tanggal serta waktu migrations dijalankan.

Seeding CodeIgniter 4

Untuk membuat seeding di CodeIgniter kita bisa menggunakan perintah php spark make:seeder namaseeder --suffix. Kita bisa mengganti nama seeder sesuai dengan table yang akan dimasukkan data.

Setelah itu, akan dibuat file baru di app/Database/Seed. Buka file yang telah dibuat barusan dan kita bisa memasukan perintah untuk membuat dummy data seperti berikut.

public function run()
    {
        $data = [
            'blog_title' => 'leravio',
            'blog_description'    => 'Lorem Ipsum is simply dummy text of the printing and typesetting industry'
        ];

        // Simple Queries
        $this->db->query("INSERT INTO blog (blog_title, blog_description) VALUES(:blog_title:, :blog_description:)", $data);

        // Using Query Builder
        $this->db->table('blog')->insert($data);
    }

Terakhir agar lebih mudah dalam mengelompokkan Seed, kita bisa membuat seed baru dengan perintah php spark make:seeder main --suffix. Setelah itu, buka file tersebut lalu di dalam function run() kita panggil setiap seed yang akan dijalankan.

public function run()
    {
        $this->call('BlogSeeder');
    }

Kita juga bisa menambahkan seed baru dibawahnya. Untuk menjalankan seed tersebut kita bisa menggunakan perintah php spark db:seed MainSeeder. Selamat kita telah berhasil memasukkan data di database.

membuat seeding di codeigniter 4

Penutup

Pada pembelajaran kali ini kita telah belajar bagaimana cara membuat migration dan seeding di CodeIgniter 4. Selain itu, kita juga tahu akan kegunaan dari migration dan seeding. Untuk pembelajaran selanjutnya kalian bisa lihat dibawah sini.

Scroll to Top