Seri 8 Belajar Laravel 10 dari Nol || Migrasi Product

 


Migrasi Produk


Pengenalan Migrasi Laravel

Sekarang, kita bisa pergi ke aplikasi phpMyAdmin dan membuat tabel di dalam database online_store (seperti tabel produk). Ini dapat dilakukan melalui pengisian formulir. Itu adalah cara tradisional. Namun, ada masalah, itu tidak memungkinkan kita untuk memiliki kontrol versi atas tabel dan kueri database kita. Jika Anda pernah harus memberi tahu rekan setim untuk secara manual menambahkan kolom tabel ke skema database lokal mereka setelah menarik perubahan Anda dari kontrol sumber (seperti GitHub), Anda telah menghadapi masalah ini.

Migrasi Laravel seperti kontrol versi untuk basis data kita. Mereka memecahkan masalah sebelumnya yang memungkinkan kita untuk mendefinisikan dan berbagi definisi skema basis data aplikasi.


Kita tidak akan membuat tabel basis data dengan cara tradisional. Sebaliknya, kita akan melakukannya melalui migrasi Laravel.


Migrasi Produk

Mari membuat migrasi produk kita. Di Terminal, masuk ke direktori proyek, dan jalankan perintah berikut:


php artisan make:migration create_products_table






Perintah sebelumnya membuat file migrasi tabel produk di dalam folder database/migrations. Nama setiap file migrasi berisi penanda waktu yang memungkinkan Laravel menentukan urutan migrasi. Dalam kasus kita, itu membuat file bernama 2022_02_11_153916_create_products_table.php.



Jika Anda melihat file yang dihasilkan, itu berisi kelas migrasi. Kelas migrasi berisi dua metode: up dan down. Metode up digunakan untuk menambahkan tabel, kolom, atau indeks baru ke basis data Anda. Sebaliknya, metode down harus membatalkan operasi yang dilakukan oleh metode up.


Sekarang, buka file yang sebelumnya dihasilkan. Hapus semua kode yang ada dan isi dengan kode berikut:



<?php

use Illuminate\Database\Migrations\Migration;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Support\Facades\Schema;


return new class extends Migration

{

    /**

     * Run the migrations.

     *

     * @return void

     */

    public function up()

    {

        Schema::create('products', function (Blueprint $table) {

            $table->id();

            $table->string('name');

            $table->text('description');

            $table->string('image');

            $table->integer('price');

            $table->timestamps();

        });

    }


    /**

     * Reverse the migrations.

     *

     * @return void

     */

    public function down()

    {

        Schema::dropIfExists('products');

    }

};






Mari analisis kode sebelumnya secara bertahap.

{
Schema::create('products', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->text('description');
$table->string('image');
$table->integer('price');
$table->timestamps();
});
}

Metode up akan membuat tabel basis data baru yang disebut produk. Secara default, Laravel menyarankan untuk membuat nama tabel dalam bentuk jamak. Hal ini disebabkan oleh cara kerja sistem ORM Laravel "Eloquent" (dibahas nanti). Metode up mendefinisikan pembuatan tabel produk dengan lima kolom (id, name, description, image, dan price). Oleh karena itu, metode timestamps akan menambahkan dua kolom (created_at dan updated_at). Kami juga menggunakan lima jenis kolom (id, string, text, integer, dan timestamps). Informasi lebih lanjut tentang jenis kolom yang tersedia dapat ditemukan di sini: https://laravel.com/docs/9.x/migrations#available-column-types.



public function down()

{

Schema::dropIfExists('products');

}

Metode down berisi kebalikan dari metode up. Ini menghapus tabel produk. Kita akan melihat cara mengeksekusi metode up dan down dari kelas migrasi nanti. Tapi pertama, kita perlu memperbarui kredensial basis data kita di proyek Laravel kita.

TIPS: Selalu tentukan skema basis data Anda menggunakan migrasi atau pendekatan serupa. Ingatlah, mereka berfungsi sebagai kontrol versi basis data Anda. Sebagian besar kerangka aplikasi web menyediakan fitur-fitur semacam ini. Misalnya, Django menyediakan Migrasi Django yang berfungsi seperti pendekatan sebelumnya.


Memodifikasi file .env

Untuk menjalankan migrasi, kita perlu memodifikasi file .env (yang terletak di folder root proyek). Di file .env, lakukan perubahan berikut yang dicetak tebal. Anda perlu menetapkan DB_DATABASE, DB_USERNAME, dan DB_PASSWORD. Jika Anda memiliki nama basis data, nama pengguna, atau kata sandi yang berbeda, lakukan perubahan yang sesuai.






DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=online_store

DB_USERNAME=root

DB_PASSWORD=root


note: disini karena sebelumnya saya sudah membangun aplikasi lain maka password root sudah saya ganti menjadi root juga namun jika anda masih baru dalam instalasi xampp dan konfigurasi default maka password database adalah kosong

Menjalankan migrasi

Untuk menjalankan migrasi, di Terminal, masuk ke direktori proyek, dan jalankan perintah berikut:


php artisan migrate



Perintah sebelumnya menjalankan migrasi yang didefinisikan di dalam folder database/migrations. Lima migrasi dijalankan. Yang terakhir adalah migrasi "buat tabel produk" kita. Migrasi lainnya sesuai dengan migrasi default Laravel. Kita akan memanfaatkan beberapa di antaranya di bab-bab berikutnya. Jika semuanya berjalan seperti yang diharapkan, Anda harus melihat hasil seperti yang ditampilkan pada Gambar .

perhatikan kesalahan diatas, diatas menunjukan bahwa ada konfirmasi bahwa nama database laravel tidak ada karena kita tadi membuat database dengan nama online_store jadi begitu mudahnya membuat tabel dan database laravel tinggal mengetikan baris perintah "yes" maka akan dibuatkan juga database laravel

namun kita kembali pada konsep semula yakni database kita bernama online_store maka kita ketikan perintah migrate lagi:


Sesuaikan isi tabel produk dengan kode berikut


[code hl="1, 4, 7"] id(); $table->string('name'); $table->text('description'); $table->string('image'); $table->integer('price'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('products'); } }; [/code]


Verifikasi migrasi di phpMyAdmin

Saatnya untuk memverifikasi bahwa migrasi diterapkan dengan benar di database kita. Buka aplikasi phpMyAdmin dan klik database online_store (lihat Gambar ).

Seperti yang dapat Anda lihat, tabel produk kita muncul dalam daftar. Migrasi berhasil!


Memasukkan produk

Mari masukkan empat produk ke dalam database kita. Untuk saat ini, kita akan memasukkannya secara manual (melalui kueri SQL). Nanti, kita akan memasukkan produk melalui formulir di bab mendatang.


Di phpMyAdmin, klik database online_store, klik tab SQL, tempel kueri SQL berikut, dan klik jalankan (lihat Gambar ).



INSERT INTO products (id, name, description, image, price, created_at, updated_at) VALUES (NULL, 'War', 'Best War Game', 'game.png', '1000', '2021-10-01 00:00:00', '2021-10-01 00:00:00');

INSERT INTO products (id, name, description, image, price, created_at, updated_at) VALUES (NULL, 'Aneka Mainan', 'Best Mainan', 'mainan.png', '999', '2021-10- 01 00:00:00', '2021-10-01 00:00:00');

INSERT INTO products (id, name, description, image, price, created_at, updated_at) VALUES (NULL, 'Perkakas', 'DIY Perkakas', 'perkakas.png', '30', '2021-10-01 00:00:00', '2021-10-01 00:00:00');

INSERT INTO products (id, name, description, image, price, created_at, updated_at) VALUES (NULL, 'Kesehatan', 'Alat Kesehatan', 'kesehatan.png', '100', '2021- 10-01 00:00:00', '2021-10-01 00:00:00');



Mari periksa apakah produk berhasil dimasukkan. Di phpMyAdmin, klik database online_store, dan klik tabel produk. Mudah-mudahan, Anda akan melihat empat produk yang dimasukkan (lihat Gambar).





Kode bisa diambil https://github.com/idiarso/laravelku
IDIARSO
IDIARSO

Menulis adalah kegiatan saya disela rutinitas kerja,silahkan berkomentar dibawah ini sebagai bahan masukan

Tidak ada komentar:

Posting Komentar