Skip to main content

Database Migration Laravel


Ada sebuah fitur/keunggulan tersendiri bagi kamu pengguna framework laravel. Yap, hanya di laravel kita dapat membuat melalui “migration”. Dengan fitur ini, proses pembuatan dan modifikasi tabel database dapat dilakukan dalam script PHP. Penggunaan database migration ini akan sangat “terasa” bagi kamu yang terbiasa dalam pengembangan sistem bersama tim dimana dalam pengerjaan sistem biasanya dikerjakan lebih dari 1 orang. Setiap ada perubahan tabel, maka akan tersimpan di source control seperti git. Selain itu, kamu juga dapat melakukan undo dan redo perubahan database dengan mudah.
Sebelum dapat membuat tabel melalui migration, kita wajib melakukan konfigurasi database terlebih dahulu dan membuat file migration. Jalankan command di bawah ini di terminal/command prompt untuk membuat file migration.

Menjalankan Migrations

Dengan artisan, kita cukup menjalankan perintah di bawah.
$ php artisan migrate
Migrated: 2016_10_11_014905_create_pages_table
Untuk memastikan tabel pages berhasil dibuat, bisa dilakukan pengecekan melalui SQL editor pada basisdata sesuai pengaturan di atas. Selain tabel pages, kita juga bakal mendapati tabel dengan nama migrations. Tabel ini berfungsi untuk menyimpan informasi seputar migrations yang kita buat.

Memodifikasi Tabel dengan Migrations

Tak hanya membuat tabel baru, dengan migration, kita juga bisa memodifikasi field atau opsi lain pada tabel yang sudah ada. Semisal, dalam tabel pages, kita ingin menambahkan field baru dengan nama user_id. Untuk inisiasi berkas migration-nya, menggunakan perintah kurang lebih seperti di bawah.
$ php artisan make:migration add_user_id_field_to_pages_table — table=pages
Penamaan migrasi kali ini sedikit lebih panjang. Hal ini bertujuan untuk memberikan informasi sedetail mungkin tentang migrasi yang akan dijalankan. Opsi --table menginstruksikan untuk menambahkan parameter nama tabel dan mengubah tabel yang sudah ada.
Dengan perintah di atas, maka akan menghasilkan berkas baru dengan isi kurang lebih seperti ini.
Modifikasi berkas di atas menjadi seperti di bawah.
Penjelasan singkatnya:
  • $table->integer('user_id')->after('id'); menambahkan field baru dengan nama user_id, dan meletakkannya setelah field id dengan menggunakan method after(). Selain itu, sebelum blok script tersebut dibuat, juga ditambahkan pengecekan untuk memastikan tabel pagesmemang sudah ada.

Rollback Migration

Sederhananya, rollback bisa berarti membatalkan aksi terakhir dari migrations. Di Laravel versi 5.3, kita dapat menentukan sendiri jumlah langkah rollback migrations. Satu langkah berarti satu berkas migrations.
$ php artisan migrate:rollback
Rolled back: 2016_10_11_014905_create_pages_table
Dalam versi 5.3, dapat menggunakan opsistep.
$ php artisan migrate:rollback --step=2
Apabila ingin membatalkan semua migration, maka cukup dengan menjalankan perintah php artisan migrate:reset.
Masih ada tiga aksi lagi yang tersedia pada migration, ialah statusrefreshdan install, yang ketiganya berfungsi sebagai berikut:

  • install membuat repositori migrations.
  • refresh rollback sepenuhnya migration, kemudian menjalankan ulang migrations tersebut dari awal.
  • status memeriksa status migrasi saat ini.


Langsung saja kita ke Studi Kasus...
php artisan make:migration create_t_percobaan

Maka, akan terbentuk sebuah file baru di folder database/migrations. Isinya kira kira seperti ini :   
  • Isi minimal 15 field yang berbeda
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class t_percobaan extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('t_percobaan', function (Blueprint $table) {
            $table->increments('nip');
            $table->int('nik',11);
            $table->string('nama_lengkap');
            $table->string('alamat');
            $table->date('tglLahir');
            $table->string('tempatLahir',100);
            $table->int('usia',3);
            $table->int('no_telp',11);
            $table->string('pekerjaan',35);
            $table->float('gaji',11);
            $table->string('nama_ayah',50);
            $table->string('nama_ibu'50);
            $table->string('status',20);
            $table->enum('pendidikanTerakhir',['Sarjana','Diplomat','SMA','SMK','SMP','SD']);
            $table->string('email',100);
            $table->timestamps();
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('t_percobaan');
}
}
Dalam file tersebut terdapat 2 function yakni :
  • Function up() : Berisi perubahan struktur database yang kita inginkan.
  • Function down() : Berisi pembatalan aksi terhadap perubahan struktur yang dilakukan oleh function up().

JALANKAN MIGRASI



Maka Studi Kasus 1 sudah selesai!

STUDI KASUS 2

1.Buatlah tabel t_kelas dengan field nama_kelas, jurusan
2.Buatlah perubahan tabel t_kelas dengan menambahkan field lokasi_ruangandengan tipe data string dan panjang 100 karakter
3.Buatlah perubahan tabel t_kelas dengan mengganti panjangnya menjadi 50 karakter
4.Buatlah perubahan tabel t_kelas dengan menambahkan field nama_walkeldengan tipe data string dan panjang 50 karakter
5.Buatlah perubahan tabel t_kelas dengan mengubah nama field nama_walkelmenjadi nama_wali_kelas

STUDI KASUS 2.1

Ketik di CMD seperti ini :
php artisan make:migration create_t_kelas
Open dan Edit seperti ini :



Lakukan migrasi.Caranya ketik command dibawah ini :
php artisan migrate
Dan hasilnya akan seperti ini :
D:\xampp\htdocs\laravel5.7-fresh>php artisan migrate
Migrating: 2019_02_25_025847_add_lokasi_ruangan_t_kelas
Migrated:  2019_02_25_025847_add_lokasi_ruangan_t_kelas

STUDI KASUS 2.2

Ketik di CMD :
php artisan make:migration add_lokasi_ruangan_t_kelas
Lalu edit isi File nya seperti ini :



Lakukan migrasi, Ketik Command ini di CMD tadi :
php artisan migrate
Jika muncul message nya akan seperti ini :
D:\xampp\htdocs\laravel5.7-fresh>php artisan migrate
Migrating: 2019_02_25_025847_add_lokasi_ruangan_t_kelas
Migrated:  2019_02_25_025847_add_lokasi_ruangan_t_kelas

STUDI KASUS 2.3

Ketik di CMD:
php artisan make:migration change_length_of_t_kelas
Lalu Edit File nya seperti ini :

Lakukan migrasi :
php artisan migrate
Jika berhasil message akan seperti ini :
D:\xampp\htdocs\laravel5.7-fresh>php artisan migrate
Migrating: 2019_02_25_082122_change_length_of_t_kelas
Migrated:  2019_02_25_082122_change_length_of_t_kelas

STUDI KASUS 2.4

Ketik di CMD :
php artisan make:migration add_nama_walkel_t_kelas
Lalu Edit seperti ini :


Lakukan migrasi, Caranya ketik Command dibawah ini di CMD :
php artisan migrate
Jika muncul akan seperti ini :
D:\xampp\htdocs\laravel5.7-fresh>php artisan migrate
Migrating: 2019_02_25_025847_add_lokasi_ruangan_t_kelas
Migrated:  2019_02_25_025847_add_lokasi_ruangan_t_kelas

STUDI KASUS 2.5

Ketik ini di CMD :
php artisan make:migration change_nama_walkel_t_kelas
Lalu edit File nya seperti ini :


Lakukan migrasi, Caranya ketik Command dibawah ini di CMD :
php artisan migrate
Jika muncul message akan seperti ini :
D:\xampp\htdocs\laravel5.7-fresh>php artisan migrate
Migrating: 2019_02_25_082122_change_length_of_t_kelas
Migrated:  2019_02_25_082122_change_length_of_t_kelas
Berikut sedikit penjelasannya.
  • Schema::create('pages', function (Blueprint $table) {..} memanggil method create() dari class Schema.
  • $table->increments('id'); method untuk membuat increment field dengan nama id.
  • $table->string('slug', 150)->unique(); membuat field string dengan panjang 150 karakter dan bersifat unik (UNIQUE).
  • $table->text('content'); membuat field text.
  • $table->enum('status', ['drafted', 'published'])->default('drafted'); membuat field enum dengan dua nilai, yaitu drafted dan published, dan menjadikan drafted sebagai nilai default.
  • $table->timestamps(); merupakan method yang secara otomatis akan membuat dua buah field dengan nama created_at dan updated_at.

  • Selain membuat tabel dan memodifikasinya, masih ada banyak hal yang dapat dilakukan dengan migrations pada Laravel. Aksi lainnya semisal menghapus atau mengganti nama tabel yang sudah ada, menghapus field, membuat indeks, foreign key, dan lainnya. Tutorial di atas merupakan basic yang sudah mencakup sebagian besar fitur migrations, sisanya, silakan pelajari sendiri melalui laman official Laravel. 😉

Comments

Popular posts from this blog

Membuat Anak Tangga menggunakan PHP - P24

Cara Membuat Anak Tangga menggunakan Array 2 Dimensi & Looping  Kali ini saya akan menunjukan kepada kalian cara membuat Anak Tangga di PHP menggunakan Array 2 dimensi & Looping dengan menyesuaikan Input dan pilihan warna dari User. Semoga bermanfaat~ <?php error_reporting ( 0 ); $jumlah = $_POST [ 'anakTangga' ]; $warna = $_POST [ 'warnaTangga' ]; for ( $i = 0 ; $i < $jumlah ; $i ++) { for ( $j = 0 ; $j < $i ; $j ++) { echo "<div class='kotak' style='background-color:$warna'></div>" ; } echo "<div class='kotak' style='background-color:$warna'></div><br>" ; } ?> Dan ini hasilnya Keterangan: Bahwa dalam menggunakan Array 2 Dimensi & Looping akan terus menerus mengulang sesuai dengan Input User <!DOCTYPE html> <html> <head> <title> Tangga Berwarna </title> </head> ...

Komponen Audio,Video & Flash - P7

Menyediakan komponen, Audio, Video & Flash Format Tampilan Video Kita dapat menampilkan format audio pada halaman web, untuk menampilkannya dapat digunakan format seperti ini  Hasilnya: Source Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <!DOCTYPE html> <html> <head> <title> cek video </title> </head> <body> <video width= "999" height= "540" controls poster= "gambarku/cute-030.jpg" > <source src= "This Is Me.mkv" type= "video/mp4" > browser anda tidak mendukung format video ini </video> </body> </html> Format Tampilan Audio  Hasilnya: Format Tampilan Flash 1 2 3 4 5 6 7 8 <html> <head> <title> Animasi </title> </head> <body> <embed src= "media/Strong.swf" > </body> </html> Hasilnya: Aud...

Algoritma C++ Konversi dan Menukar Bilangan dari User

MENJADIKAN CODING C++ BERMANFAAT UNTUK USER Selamat beraktivitas bagi pembaca sekalian dimanapun kalian berada.. Kali ini saya akan menunjukan kepada kalian coding sederhana dengan C++ sesuai dengan judulnya  Yang saya bahas kali ini adalah  -PERTUKARAN NILAI MENGGUNAKAN VARIABEL BANTU -PERTUKARAN NILAI TANPA MENGGUNAKAN VARIABEL BANTU -BILANGAN POSITIF & NEGATIF dan -KONVERSI WAKTU DARI DETIK KE JAM, MENIT, dan DETIK Langsung saja ke pembahasan di bawah ini. 1. PERTUKARAN NILAI MENGGUNAKAN VARIABEL BANTU -Kita menginisialisasikan terlebih dahulu variabelnya x, y, z dengan tipe data Integer sebenarnya variabel z hanya variabel pembantu saja -Lalu untuk pengulangannya saya memakai do while  dengan menginisialisasikan pilih dengan tipe data char -Lalu pengulangannya saya tulis do{ -Saya outputkan dengan  cout << "Masukan Nilai X : " ; dan input dengan cin >> a ; -Untuk proses saya masukan z = x ; x = y ; y = z ; ...