Laravel Tutorial : Menggunakan Fitur Database Migration Pada Laravel

Laravel logo

Database migration, adalah salah satu fitur yang cukup memudahkan kita ketika ada perubahan pada tabel-tabel di database aplikasi kita. Entah itu penambahan kolom, indexs dan lain sebagainya. Dulu saya tau fitur ini ketika pertama kali belajar rails, di Yii juga ada fitur database migration ini. Di laravel juga sudh disediakan. Dengan database migration, kita dapat membuat tabel-tabel tanpa harus membuka aplikasi administrasi database, seperti phpmyadmin, navicat, sqlyog, dan lainnya. Menggunakan fitur database migration pada laravel terbilang cukup mudah, lagi dan lagi kita akan dipermudah dengan command line tool bawaan laravel, yaitu artisan. Maka dari itu, saya sangat sarankan untuk menggunakan unix-based OS 😉

GENERATE KEY

Untuk memulainya, seperti biasa download file framework laravel via composer. Generate key untuk aplikasi kita via console/terminal :

php artisan key:generate

KONFIGURASI DATABASE

Karena akan berhubungan dengan database, kita harus melakukan konfigurasi pada file /app/config/database.php. Database yang kita gunakan saat ini ialah mysql, sesuaikan dengan konfigurasi di laptop/PC masing-masing. Sekedar informasi, jika menggunakan unix-based OS, biasanya akan muncul error. Pada penamaan host yang menggunakan localhost. Untuk jaga-jaga, kita gunakan ip localhost yaitu 127.0.0.1

'connections' => array(

    'mysql' => array(
        'driver'    => 'mysql',
        'host'      => '127.0.0.1',
        'database'  => 'db_berita',
        'username'  => 'root',
        'password'  => '',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
    ),
),

Kita akan membuat 2 buah tabel, yaitu tabel berita dan tabel user. Masih tetap setia di console/terminal, kita akan menjalankan artisan untuk membuat 2 buah file migrasi.

php artisan migrate:make create_berita_table --table=berita --create
php artisan migrate:make create_user_table --table=user --create

Di folder /app/database/migration akan muncul 2 buah file migrasi yang telah kita generate dengan artisan. Buka file TANGGAL_create_berita_table.php dan TANGGAL_create_user_table.php. Tambahkan kode seperti di bawah ini pada method up.

TANGGAL_create_user_table.php

	public function up()
	{
		Schema::create('user', function(Blueprint $table)
		{
			$table->increments('id');
	        	$table->string('username')->unique();
	        	$table->string('password');
		});
	}

TANGGAL_create_berita_table.php

	public function up()
	{
		Schema::create('berita', function(Blueprint $table)
		{
			$table->increments('id');
        		$table->string('user_id');
        		$table->string('judul');
        		$table->string('deskripsi');
		});
	}

Adakalanya saat menginputkan data ke dalam tabel setelah tabel dibuat. Nah, disini kita menggunakan fitur database-seeding dari laravel. Buat sebuah file baru dengan nama UserTableSeeder.php di dalam folder /app/database/seeds/. Isinya sebagai berikut :

class UserTableSeeder extends Seeder {

	/**
	 * Run the user seeds.
	 *
	 * @return void
	 */
public function run()
    {
        DB::table('user')->delete();

        $user = array(
            array(
            'username' => 'gede',
            'password' => Hash::make('gede')
            ),
            array(
            'username' => 'lumbung',
            'password' => Hash::make('lumbung')
            ),
            array(
            'username' => 'admin',
            'password' => Hash::make('admin')
            )
        );

        DB::table('user')->insert( $user );
    }

}

Setelah itu, jangan lupa kita panggil class UserTableSeeder ketika proses database seed dijalankan, dengan memanggilnya di file app/database/seeds/DatabaseSeeder.php.

	public function run()
	{
		Eloquent::unguard();

		$this->call('UserTableSeeder');
	}

Dan yang terakhir adalah mengeksekusi file migrasi tadi beserta database seed yang telah kita buat.

php artisan migrate
php artisan db:seed

Dan buka phpmyadmin, lihat pada database db_berita akan ada 3 buah tabel secara otomatis setelah kita melakukan migrasi, yaitu tabel user, berita, dan migrations. Browse data pada tabel user, maka sudah terdapat 3 buah baris data yang tersimpan. Cukupa mudah kan :D. Masih banyak fitur-fitur canggih yang disediakan oleh laravel, tentunya eksekusinya dengan menggunakan artisan. OK deh, sekian dulu postingan saya kali ini. Semoga bisa menambah wawasan kita di dunia web programing yang kian hari kian canggih 😀

“Stay Foolish, Stay Hungry”

Happy Blogging and Keep Coding

Cheerrrss….!!!!

4 comments

  1. Luthfi M Reply

    Mas, bingung cari2 referensi framework yii
    upload dong studi kasus2-nya
    udah coba yang portal dengan yii dari githubny sibos, tpi tidak bisa login alias masuk admin
    terima kasih…

  2. Exabytes(Id) Reply

    Cukup membantu gan, bagi yang belajar Laravel Php framework,
    Kapan nich bisa opload tutorial YII Fremwork juga, 🙂

  3. Obat Gagal Ginjal Reply

    ijin liat-liat halamannya ya kk admin. lumyan bagus nehh.. bisa liat punya saya 😀

  4. adi Reply

    makasih mas bro infonya… mau cari2 CI nyasarnya kesini tp nice inpoh…

    =============== [edited by admin] ===============