Pemrograman Web ~ Database Migration
Assalamualaikumwarohmatullahi wabarokatu
Halohalo haloo kembali lagi dengan saya dengan artikel pemrograman web . Kali ini kita akan melanjutkan tentang laravel dengan materi Database Migration .
Sebelum kita melanjutkan ke pembahasan pertama-tama harus mengecek dahulu konfigurasi PATH-nya dengan cara buka cmd lalu ketikkan php -v , jika berhasil akan keluar seperti ini :
jika gagal maka harus mengsetting Path nya terlebih dahulu dengan cara :
- buka windows explorer ,cari foleder php lalu copykan alamat foldernya
- Klick kanan MyComputer / This PC, pilih properties
- pilih menu Advance system settings
- Klick kanan Environment Variables
- Pada tab System Variables , cari Variable Path
- Klick Edit pada Variable tsb
- Klick new, lalu paste alamat path PHP anda
- klick ok , lalu tutup semua tab dan cmd
- buka kembali cmd lalu coba kembali ketikkan php-v
Bila sudah selesai kita dapat melanjutkan ke Database Migration . Pertama buka masuk ke folder laravel di CMD , lalu buat database baru dengan nama db_belajarlaravel .
Edit .env
buka file .env pada root folder project laravel anda,konfigurasi koneksi database di file tersebut
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_belajarlaravel
DB_USERNAME=root
DB_PASSWORD=
Buat table t_siswa dengan cara , ketikkab perintah php artisan make:migration create t_siswa . Secara otomatis akan muncul file baru pada folder database/migrations.Buka file tersebut , Lalu edit dengan menambahkan Codingan berikut
public function up()
{
Schema::create('t_siswa', function (Blueprint $table) {
$table->id();
$table->integer('nis');
$table->string('nama_lengkap', 100);
$table->string('jenis_kelamin', 1);
$table->timestamps();
});
}
penjelasan :
Codingan tersebut bertujuan membuat field
note:
- function up : Fungsi yang dijalankan ketika database di migrate , biasanya menjalankan perintah create table, ataupun alter table
- function down : Fungsi yang dijalankan ketika database di rollback , biasanya kebalikan dengan fungsi yang dikerjakan pada function up
Lalu jalankan perintah migrate di CMD , Setelah itu coba Periksa Database di phpMyAdmin bila sucsess maka akan muncul database dan tabel t_siswanya
Misalnya . pada tabel t_siswa perlu ditambahkan field golongan darah , kita tinggal buat file alter dengan menjalankan perintah php artisan make:migration add_goldar_t_siswa di CMD, Lalu edit file nya dengan menambahkan Codingan berikut
public function up()
{
Schema::table('t_siswa', function ($table) {
$table->string('golongan_darah', 1)->after('jenis_kelamin');
});
}
public function down()
{
Schema::table('t_siswa', function ($table) {
$table->dropColumn('golongan_darah');
});
}
Jalankan perintah migrate lalu cek kembali database di phpMyAdmin
Misalnya , ada kesalahan penulisan pada file migrasi anda, tetapi migrasi sudah dilakukan ,dan anda ingin melakukan perubahan pada file tersebut , anda dapat melakukan perintah php artisan migrate:rollback pada CMD, lalu edit filenya, contohnya seperti berikut
public function up()
{
Schema::table('t_siswa', function ($table) {
$table->string('goldar', 1)->after('jenis_kelamin');
});
}
public function down()
{
Schema::table('t_siswa', function ($table) {
$table->dropColumn('goldar');
});
}
Setelah itu jalankan perintah migrate dan cek kembali database di phpMyAdmin
note :
- Rollback dijalankan hanya ketika anda sudah berhasil melakukan migrasi
- Rollback digunakan untuk melihat histori perubahaan sebelumnya
Misalnya , pada table t_siswa terjadi perubahaan nama field jenis_kelamin menjadi jenkel. Buat migration untuk mengubah field jenis_kelamin dengan menjalanjan perintah php artisan make:migration change_jenkel_t_siswa pada CMD, lalu edit file dengan menambahkan Codingan berikut :
public function up()
{
Schema::table('t_siswa', function ($table) {
$table->renameColumn('jenis_kelamin', 'jenkel');
});
}
public function down()
{
Schema::table('t_siswa', function ($table) {
$table->renameColumn('jenkel', 'jenis_kelamin');
});
}
Sebelum menjalankan perintah migrate diperlukan library doctrine/dbal. dengan melakukan instalasi package dicomposer dengan menjalankan perintah composer require doctrine/dbal pada root folder laravel anda *ingat diperlukkan koneksi internet
Tunggu sampai selesai setelah itu lakukan perintah mirage seperti biasa dan coba cek database nya di phpMyAdmin
Studi Kasus 1
Buatlah migrasi baru untuk membuat tabel t_percobaan , Cobalah buat minimal 15 field yang berbeda pada table tersebut bedasarkan dokumentasi dari laravel dari link berikut : creat-colmuns
- Buat table dengan perintah php artisan make:migratin creat_t_percobaan di CMD
- lalu Edit file untuk membuat field, contohnya
public function up()
{
Schema::create('t_percobaan', function (Blueprint $table) {
$table->id();
$table->foreignId('user_id');
$table->boolean('confirmed');
$table->binary('binary');
$table->char('name', 100);
$table->date('date');
$table->dateTime('datetime', 0);
$table->decimal('decimal', 8, 2);
$table->double('double', 5, 2);
$table->enum('level', ['mudah', 'susah']);
$table->float('float', 4, 2);
$table->integer('pilih');
$table->set('rasa', ['strawberry', 'vanilla']);
$table->string('string', 100);
$table->text('deskripsi');
$table->year('tahun');
$table->timestamps();
});
}
Studi Kasus 2
- Buatlah tabel t_kelas dengan field nama_kelas, jurusan
- Buatlah perubahan tabel t_kelas dengan menambahkan field lokasi_ruangan dengan tipe data string dan panjang 100 karakter
- Buatlah perubahan tabel t_kelas dengan mengganti panjangnya menjadi 50 karakter
- Buatlah perubahan tabel t_kelas dengan menambahkan field nama_walkel dengan tipe data string dan panjang 50 karakter
- Buatlah perubahan tabel t_kelas dengan mengubah nama field nama_walkel menjadi nama_wali_kelas
Pertama jalankan perintah php artisan make:migration creat_t_kelas pada CMD untuk membuat tabelnya
Lalu tambahkam Codingan berikut untuk menambahkan field lokasi_ruangan
public function up()
{
Schema::create('t_kelas', function (Blueprint $table) {
$table->id();
$table->string('lokasi_ruangan', 100);
$table->timestamps();
});
}
lalu jalankan perintah Migrate dan Cek Databasenya :
Untuk mengubah panjang karakter sekaligus menambahkan field nama_walkel, kita jalankan perintah php artisan migrate:rollback , lalu ubah codingannya menjadi
public function up()
{
Schema::create('t_kelas', function (Blueprint $table) {
$table->id();
$table->string('lokasi_ruangan', 50);
$table->string('nama_walkel', 50);
$table->timestamps();
});
}
lalu jalankan perintah Migrate dan Cek Databasenya :
Untuk mengubah nama field nama_walkel , kita buat dahulu file dengan menjalankan perintah php artisan make:migration change_walkel_t_kelas diCMD , lalu ubah dan tambahkan codingandifile nya :
public function up()
{
Schema::table('t_kelas', function ($table) {
$table->renameColumn('nama_walkel', 'nama_wali_kelas');
});
//
}
public function down()
{
Schema::table('t_kelas', function ($table) {
$table->renameColumn('nama_wali_kelas', 'nama_walkel');
});
//
}
Lalu jalankan perintah migrate seperti biasa dan Cek Databasenya :
Comments
Post a Comment