Php artisan memigrasikan file tertentu

Skema basis data dapat dimodifikasi dari keadaan yang ada ke keadaan yang diinginkan melalui migrasi. Ini dapat mencakup penambahan tabel dan kolom, menghapus item, atau mengubah jenis dan batasan

Misalnya, jika Anda sedang mengerjakan proyek tim dan perlu mengubah persyaratan aplikasi, Anda mungkin ingin mempertimbangkan untuk mengubah database

Biasanya, pembaruan. sql dibagikan dengan setiap anggota tim untuk diimpor ke database mereka. Namun, pendekatan ini tidak ideal atau terukur karena banyak hal yang bisa salah dan membuat aplikasi rusak. Misalnya, anggota tim dapat lupa untuk mengimpor file ke database mereka, atau bahkan mengimpor versi lama dari file tersebut. .sql

Migrasi bertindak seperti kontrol versi untuk database Anda, memungkinkan tim Anda untuk berbagi dan menentukan skema database aplikasi Anda. Migrasi Laravel sangat penting karena membantu Anda mengatasi masalah kolaborasi database seperti itu untuk sebuah tim. Anggota tim Anda tidak perlu memperbarui database mereka secara manual setiap kali mereka menarik perubahan Anda dari kontrol sumber

Dalam tutorial ini, Anda akan mempelajari pentingnya migrasi dalam aplikasi Laravel Anda serta berbagai manfaat migrasi Laravel beserta kasus penggunaannya. Anda juga akan mempelajari berbagai tindakan, perintah, dan peristiwa migrasi

Apa itu Migrasi Laravel?

Migrasi Laravel memungkinkan pengembang untuk dengan cepat membuat, menghapus, dan memodifikasi database aplikasi tanpa masuk ke pengelola database atau menjalankan kueri SQL apa pun.  

Sangat penting untuk mengetahui bahwa Laravel menyediakan. Anda cenderung mengalami masalah dukungan saat menggunakannya. Mereka termasuk yang berikut ini

  • MariaDB 10. 3+
  • MySQL5. 7+
  • PostgreSQL 10. 0+
  • SQLite 3. 8. 8+
  • SQL Server 2017+

Mengapa Anda menggunakan Migrasi Laravel?

Selain dari kontrol versi, migrasi memudahkan untuk mengotomatiskan penerapan dan membuat database sementara untuk menjalankan pengujian. Mereka memungkinkan Anda menyusun model dan tabel dengan mudah dan merupakan fitur penting untuk seeder dalam aplikasi Anda

Pembibitan adalah metode sederhana untuk menghasilkan data dummy untuk aplikasi Anda selama pengujian

Migrasi juga mendukung developer dengan membantu pengorganisasian lingkungan, validasi, dan implementasi yang aman dari modifikasi skema

Dengan migrasi, Anda dapat mengubah bidang dalam database tanpa menghapus catatan yang ada. Laravel melacak migrasi yang dieksekusi di dalam database. Akibatnya, basis data dapat berkembang seiring dengan perubahan persyaratan aplikasi

Cara membuat migrasi

Setiap file migrasi menentukan tabel di database Anda. Ini berisi skema untuk membuat atau memodifikasi tabel itu di database. Laravel menggunakan perintah id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('user'); } }8 Artisan untuk membuat migrasi database

php artisan make:migration create_users_table_

Perintah membuat file migrasi di direktori database/migrasi aplikasi Anda. Laravel menggunakan awalan stempel waktu dalam nama file migrasi untuk menentukan urutan migrasi—misalnya, id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('user'); } }9

Laravel mencoba menentukan nama tabel dan tindakan migrasi berdasarkan nama file. Itu juga mengisi sebelumnya file migrasi dengan nama tabel yang ditentukan dari tebakan yang dicoba. Anda dapat menentukan nama tabel secara manual di file migrasi jika upaya tersebut gagal

Anda dapat menentukan jalur tertentu dalam aplikasi Anda untuk migrasi yang dihasilkan dengan menggunakan argumen DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE= DB_USERNAME= DB_PASSWORD=0 dengan perintah id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('user'); } }8

php artisan make:migration create_users_table --path=app/database/migrations

Struktur migrasi

File migrasi yang dihasilkan memiliki definisi kelas dengan metode DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE= DB_USERNAME= DB_PASSWORD=2 dan DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE= DB_USERNAME= DB_PASSWORD=3 secara default. Metode DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE= DB_USERNAME= DB_PASSWORD=_2 dipanggil setiap kali Anda menjalankan migrasi. Namun, metode DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE= DB_USERNAME= DB_PASSWORD=_3 dipanggil setiap kali migrasi database dibatalkan

Anda dapat mengubah database dengan menambahkan tabel, kolom, atau indeks baru menggunakan metode DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE= DB_USERNAME= DB_PASSWORD=6, sedangkan metode DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE= DB_USERNAME= DB_PASSWORD=3 melakukan operasi metode DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE= DB_USERNAME= DB_PASSWORD=6 dalam arah sebaliknya.  

Misalnya, metode DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE= DB_USERNAME= DB_PASSWORD=_6 berisi skema untuk membuat tabel baru, menambahkan kolom baru ke tabel, atau memodifikasi kolom yang ada, sedangkan metode php artisan config:cache 0 berisi skema untuk melakukan kebalikannya, seperti menjatuhkan tabel, menjatuhkan kolom, dll.

Sekarang, Anda dapat menggunakan untuk membuat atau mengubah tabel dalam salah satu metode ini

Mari tentukan migrasi untuk membuat tabel yang disebut pengguna

id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('user'); } }

php artisan config:cache _1 menunjukkan bahwa kita sedang membuat tabel. php artisan config:cache _2  menghapus tabel yang ditentukan (yang dalam hal ini adalah 'pengguna') jika ada di database setiap kali migrasi dibatalkan

Menjalankan migrasi

Sebelum menjalankan migrasi Anda,. Perbarui. env di direktori root aplikasi Anda dengan konfigurasi database agar sesuai dengan contoh berikut, mengganti placeholder dengan detail untuk database Anda

DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE= DB_USERNAME= DB_PASSWORD=

Membersihkan cache bersifat opsional, tetapi mungkin diperlukan di sini. Jalankan perintah berikut di terminal untuk melakukannya

php artisan config:cache

Gunakan perintah Artisan php artisan config:cache 3 untuk mengeksekusi semua migrasi Anda yang tertunda ke database

php artisan migrate

Berdasarkan migrasi yang ditentukan sebelumnya, Anda akan melihat tabel pengguna di database Anda dengan lima kolom. php artisan config:cache 4, php artisan config:cache 5, php artisan config:cache 6, php artisan config:cache 7, dan php artisan config:cache 8. php artisan config:cache _9 dalam file migrasi Anda menghasilkan kolom php artisan config:cache 7 dan php artisan config:cache 8 untuk database

Tabel, kolom, dan indeks

Database berisi banyak tabel. Kolom dan baris ada di setiap tabel

Indeks adalah struktur data yang memfasilitasi operasi pengambilan data yang mudah pada tabel dengan biaya penulisan tambahan dan ruang penyimpanan yang diperlukan untuk memelihara struktur data indeks. Alih-alih menelusuri setiap baris setiap kali tabel database dikunjungi, Anda dapat menggunakan indeks untuk menemukan data dengan cepat

Tabel

Membuat tabel

Tabel adalah kumpulan objek data dalam database yang disusun dalam format tabel yang terdiri dari baris dan kolom

Anda dapat menggunakan metode php artisan migrate _2 pada fasad Skema untuk membuat tabel database baru. Metode php artisan migrate _2 membutuhkan dua argumen. nama tabel sebagai argumen pertama dan penutupan yang menerima objek Cetak Biru untuk mendefinisikan tabel baru sebagai argumen kedua

Seperti yang Anda lihat pada potongan kode di bawah, php artisan migrate 4 menerima 'users', yang merupakan nama tabel, sebagai argumen pertama kita. Argumen kedua adalah fungsi penutupan di mana kelas Blueprint dengan objek $table-nya diteruskan sebagai parameter. Objek $table ini digunakan untuk membuat/memodifikasi kolom untuk tabel php artisan migrate 5

Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('role'); $table->timestamps(); });

php artisan migrate 6. Ini membuat kolom string yang disebut nama di tabel pengguna

php artisan migrate 7. Ini membuat kolom ID penambahan otomatis yang akan menjadi kunci utama untuk tabel ini

php artisan migrate 8. Ini membuat kolom updated_at dan created_at TIMESTAMP. Kolom ini akan berisi cap waktu masing-masing saat data dimasukkan dan diperbarui dalam database

Kolom ini tidak wajib. Anda memutuskan kolom yang akan disertakan berdasarkan kebutuhan aplikasi Anda

Memodifikasi tabel Anda

Untuk mengganti nama tabel, gunakan metode php artisan migrate _9 pada fasad Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); 0. Sebelum mengganti nama tabel, konfirmasikan bahwa semua batasan kunci asing pada tabel tersebut memiliki nama eksplisit di file migrasi Anda alih-alih mengizinkan Laravel untuk menetapkan nama berbasis konvensi. Jika tidak, nama batasan kunci asing akan merujuk ke tabel lama

Dalam cuplikan kode di bawah, kami telah mengganti nama tabel php artisan migrate 5 menjadi Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); 2

Schema::rename($from, $to); Schema::rename('users', 'fund_users');

Anda dapat menggunakan metode Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); _3 pada fasad Skema untuk menghapus tabel. Menjatuhkan tabel adalah kebalikan dari membuat, sehingga bisa dalam metode Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); 4 dari file migrasi. Dengan cara ini, tabel akan dijatuhkan setiap kali Anda mengembalikan migrasi Anda.   

Sekarang di cuplikan kode di bawah ini, mari kita lepaskan tabel php artisan migrate 5. Anda dapat lebih berhati-hati dengan menggunakan Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); _6, sehingga akan memeriksa apakah tabel ada sebelum menjatuhkannya, dan jika tidak ada, melanjutkan eksekusi ke perintah berikutnya tanpa mencoba untuk menjatuhkan

Jika Anda menggunakan Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); _7 untuk tabel yang tidak ada, ini menghentikan eksekusi dan mengembalikan pesan kesalahan

Schema::drop('users'); //or Schema::dropIfExists('users');

Ada banyak metode Skema berguna lainnya yang ada di.  

Berikut beberapa contohnya

Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); 8. Ini memeriksa apakah database memiliki tabel bernama php artisan migrate 5

Schema::rename($from, $to); Schema::rename('users', 'fund_users');0. Ini memeriksa apakah database memiliki tabel php artisan migrate 5 dengan kolom bernama php artisan config:cache 6

Kolom

Dalam database relasional, setiap baris database memiliki kolom terkait yang berisi sekelompok nilai data yang semuanya bertipe sama. Kolom tabel menentukan struktur data, sedangkan barisnya mengisi database dengan data

Membuat kolom

Untuk memperbarui tabel yang ada dengan kolom tambahan, gunakan metode table() di fasad Skema. Ia menerima argumen yang sama dengan metode Schema::rename($from, $to); Schema::rename('users', 'fund_users');3. Anda dapat memilih tipe data kolom dari salah satu. Sekarang, dalam kode di bawah ini saya akan menambahkan kolom tambahan Schema::rename($from, $to); Schema::rename('users', 'fund_users');4 ke tabel php artisan migrate 5

Schema::table('users', function (Blueprint $table) { $table->double('wallet'); });

Jika Anda telah memigrasikan tabel ke database dan perlu memodifikasi tabel tersebut (misalnya, Anda menambahkan kolom lain), Anda harus membuat file migrasi baru untuk modifikasi.  

Hal ini karena file migrasi telah dijalankan kecuali jika Anda memilih untuk mengembalikan migrasi, membuat perubahan pada file, dan melakukan migrasi lagi. Mengembalikan migrasi berarti menghapus tabel/kolom itu serta data yang ada di dalamnya; .  

Selain itu, Laravel menyediakan yang memungkinkan kolom memiliki properti tambahan. Dengan ini, Anda dapat memberikan nilai default pada kolom dompet dengan pengubah Schema::rename($from, $to); Schema::rename('users', 'fund_users');6

php artisan make:migration create_users_table --path=app/database/migrations0

Menjatuhkan kolom

Untuk menjatuhkan kolom, Anda dapat menggunakan metode Schema::rename($from, $to); Schema::rename('users', 'fund_users');_7 pada fasad Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); 0. Dalam metode DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE= DB_USERNAME= DB_PASSWORD=_3 file migrasi ini, Anda dapat menjatuhkan kolom

php artisan make:migration create_users_table --path=app/database/migrations1

Saya menulis artikel yang menjelaskan penambahan dan penghapusan kolom dari tabel yang ada dalam migrasi laravel

Memodifikasi kolom

Untuk memodifikasi/mengganti nama kolom, Anda harus menggunakan manajer paket Composer untuk menginstal paket Schema::drop('users'); //or Schema::dropIfExists('users');0. Untuk menginstalnya, jalankan perintah ini

php artisan make:migration create_users_table --path=app/database/migrations2

Selain itu, Anda perlu menyertakan konfigurasi berikut di file config/database. php untuk menggunakan metode Schema::drop('users'); //or Schema::dropIfExists('users');1

php artisan make:migration create_users_table --path=app/database/migrations_3

Anda sekarang dapat menggunakan metode Schema::drop('users'); //or Schema::dropIfExists('users');_2 untuk mengubah tipe dan atribut kolom yang sudah ada

php artisan make:migration create_users_table --path=app/database/migrations_4

Anda dapat menggunakan metode Schema::drop('users'); //or Schema::dropIfExists('users');_3 pada fasad Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); 0 untuk mengganti nama kolom. Mari ganti nama php artisan config:cache 5 menjadi Schema::drop('users'); //or Schema::dropIfExists('users');6

php artisan make:migration create_users_table --path=app/database/migrations5

Indeks

Indeks adalah alat canggih yang digunakan di balik layar dalam database untuk mempercepat kueri. Mengindeks permintaan daya dengan memberi pengguna cara untuk mencari data yang mereka butuhkan dengan cepat

Indeks dapat dianggap sebagai penunjuk ke informasi tabel. Sebaiknya berhati-hati saat menggunakan indeks, terutama saat tabel sering diperbarui. Indeks selalu dibuat ulang dengan setiap pembaruan, memperlambat sistem

Contoh bagus dari tipe indeks adalah Schema::drop('users'); //or Schema::dropIfExists('users');7. Itu membutuhkan semua nilai di kolom itu untuk menjadi unik. Ini berarti nilai tidak dapat diulang di kolom itu. Dalam contoh berikut, Anda akan membuat indeks untuk kolom Schema::drop('users'); //or Schema::dropIfExists('users');8 di tabel php artisan migrate 5 menjadi unik.  

php artisan make:migration create_users_table --path=app/database/migrations_6

Ada yang lain, termasuk kunci primer dan kunci asing

Kunci asing dalam tabel database relasional adalah kolom atau kumpulan kolom yang menghubungkan data dari dua tabel yang berbeda. Itu merujuk ke kunci utama dari tabel lain, membuat tautan antara dua tabel dan berfungsi sebagai referensi silang di antara keduanya

Sekarang, perkenalkan tabel Schema::table('users', function (Blueprint $table) { $table->double('wallet'); });_0 ke database Anda dalam file migrasi baru. Tabel Schema::table('users', function (Blueprint $table) { $table->double('wallet'); });_0 harus memiliki kunci asing untuk mereferensikan pengguna yang memiliki buku tersebut. Konvensi penamaan yang baik untuk kunci asing di Laravel adalah Schema::table('users', function (Blueprint $table) { $table->double('wallet'); });2. Ini karena Laravel mencoba menebak tabel dan kolom yang direferensikan berdasarkan nama kunci asing.  

Anda juga dapat menyetel kunci asing pilihan Anda, dan menggunakan properti Schema::table('users', function (Blueprint $table) { $table->double('wallet'); });3 dan Schema::table('users', function (Blueprint $table) { $table->double('wallet'); });4 untuk masing-masing menunjuk ke kolom dan tabel yang direferensikan. Dengan cara ini, Laravel melompati tebakan yang dicoba dan menggunakan tabel dan kolom yang direferensikan yang telah ditentukan

Gunakan Schema::table('users', function (Blueprint $table) { $table->double('wallet'); });_5 dalam contoh ini merujuk kolom php artisan config:cache 4 pada tabel php artisan migrate 5. Dalam metode ini, Anda harus mendefinisikan user_id sebagai Schema::table('users', function (Blueprint $table) { $table->double('wallet'); });8 sebelum menentukan properti kunci asingnya.  

php artisan make:migration create_users_table --path=app/database/migrations_7

Laravel juga menyediakan metode yang lebih pendek yang hanya menggunakan nama kunci asing untuk menentukan nama tabel dan kolom yang direferensikan. Ini lebih singkat karena tidak perlu mendeklarasikan Schema::table('users', function (Blueprint $table) { $table->double('wallet'); });8 dan menyertakan properti Schema::table('users', function (Blueprint $table) { $table->double('wallet'); });3 dan Schema::table('users', function (Blueprint $table) { $table->double('wallet'); });4 ke kunci asing atau juga mendeklarasikan Schema::table('users', function (Blueprint $table) { $table->double('wallet'); });8. Anda juga dapat melanjutkan dan menyertakan properti kunci asing lainnya seperti php artisan make:migration create_users_table --path=app/database/migrations03, dll

php artisan make:migration create_users_table --path=app/database/migrations_8

Metode php artisan make:migration create_users_table --path=app/database/migrations_03 adalah opsional dan memungkinkan Anda menentukan nama tabel jika konvensi tidak sesuai dengan nama tabel Anda

Metode php artisan make:migration create_users_table --path=app/database/migrations_05 dan php artisan make:migration create_users_table --path=app/database/migrations06 memungkinkan Anda untuk menentukan tindakan yang akan diambil saat kunci asing dihapus atau diperbarui. Tindakan kaskade berarti ketika baris di tabel induk dihapus, kolom kunci asing yang cocok di tabel anak juga dihapus, membuat penghapusan berjenjang. Oleh karena itu, jika Anda menghapus pengguna, buku mereka juga akan dihapus

Setiap pengubah kolom tambahan harus dipanggil sebelum php artisan make:migration create_users_table --path=app/database/migrations07

php artisan make:migration create_users_table --path=app/database/migrations_9

Menghapus migrasi

Tidak ada perintah Artisan untuk menghapus migrasi. Namun, menghapus migrasi bergantung pada apakah migrasi tersebut telah dieksekusi di database atau tidak

Gunakan php artisan make:migration create_users_table --path=app/database/migrations_08 untuk memeriksa apakah migrasi Anda telah dijalankan jika Anda tidak yakin

Jika Anda belum menjalankan php artisan make:migration create_users_table --path=app/database/migrations_09 untuk menjalankan migrasi, Anda dapat menghapus file migrasi

Namun, jika migrasi sudah dijalankan, Anda harus mengikuti langkah-langkah ini

  1. Akan lebih baik untuk membatalkan migrasi itu dengan menjalankan php artisan make:migration create_users_table --path=app/database/migrations10. Ingatlah bahwa Anda tidak ingin membatalkan semua migrasi, jadi sertakan nomor kumpulan migrasi yang akan dibatalkan. Seharusnya terlihat seperti php artisan make:migration create_users_table --path=app/database/migrations_11php artisan make:migration create_users_table --path=app/database/migrations12
  2. Kemudian, hapus file migrasi

Menekan migrasi

Saat aplikasi Anda berkembang dari waktu ke waktu, mungkin perlu lebih banyak migrasi. Akibatnya, Anda mungkin memperoleh banyak file migrasi di direktori database/migrasi Anda. Anda dapat memasukkan file migrasi Anda ke dalam satu file SQL menggunakan perintah php artisan make:migration create_users_table --path=app/database/migrations13

id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('user'); } }0

Saat Anda menjalankan perintah ini, Laravel akan membuat file "skema" di direktori database/skema aplikasi Anda.  

Setelah itu, jika Anda mencoba memigrasikan database untuk pertama kalinya di aplikasi Anda, Laravel akan menjalankan pernyataan SQL di file skema terlebih dahulu. Kemudian akan menjalankan migrasi yang tersisa yang tidak termasuk dalam dump skema setelah menjalankan baris dalam file skema

Peristiwa migrasi

Laravel menyediakan beberapa peristiwa migrasi pengiriman yang memungkinkan Anda melakukan tindakan tindak lanjut setelah operasi migrasi dijalankan. Misalnya, Anda dapat mengirim email ke admin setiap kali migrasi selesai dijalankan.  

  • php artisan make:migration create_users_table --path=app/database/migrations_14. Ini digunakan ketika kumpulan migrasi akan segera dieksekusi
  • php artisan make:migration create_users_table --path=app/database/migrations_15. Ini digunakan ketika satu migrasi akan segera dieksekusi
  • php artisan make:migration create_users_table --path=app/database/migrations_16. Ini digunakan ketika kumpulan migrasi telah mengakhiri eksekusi
  • php artisan make:migration create_users_table --path=app/database/migrations_17. Ini digunakan ketika satu migrasi telah mengakhiri eksekusi.  

Peristiwa ini memperpanjang kelas php artisan make:migration create_users_table --path=app/database/migrations_18 secara default. Sekarang, Anda dapat mendaftarkan yang sesuai dengan salah satu peristiwa ini di direktori app\Providers\EventServiceProvider

id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('user'); } }_1

Anda dapat membaca resmi untuk memahami acara dengan lebih baik

Perintah migrasi lainnya

Laravel memiliki beberapa perintah Artisan lain yang membuat migrasi mudah digunakan, termasuk yang berikut ini

Mengembalikan migrasi

Anda mungkin ingin mengembalikan kumpulan migrasi terakhir ke database Anda. Alih-alih menghapus kolom dan tabel dari pengelola database, Anda dapat menjalankan perintah Artisan ini

id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('user'); } }_2

Anda juga dapat mengembalikan beberapa kumpulan migrasi menggunakan opsi php artisan make:migration create_users_table --path=app/database/migrations19 dan nomor kumpulan. Laravel melacak semua php artisan make:migration create_users_table --path=app/database/migrations20 pada tabel migrasi, termasuk nomor batch migrasi

id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('user'); } }_3

Ini mengembalikan dua kumpulan migrasi terakhir ke database Anda. Anda dapat memeriksa tabel migrasi di database Anda jika Anda tidak yakin dengan nomor batch migrasi yang akan dibatalkan

Menyetel ulang migrasi

Anda dapat menggunakan perintah php artisan make:migration create_users_table --path=app/database/migrations_21 untuk mengembalikan semua migrasi aplikasi Anda di database

id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('user'); } }_4

Migrasi yang menyegarkan

Anda dapat menggunakan perintah php artisan make:migration create_users_table --path=app/database/migrations_22 untuk membuat ulang seluruh database Anda. Ini mengembalikan semua migrasi Anda dan menjalankan perintah migrasi lagi

id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('user'); } }5

Perintah itu sering disalahartikan sebagai php artisan make:migration create_users_table --path=app/database/migrations_23. Perintah php artisan make:migration create_users_table --path=app/database/migrations_23 menghapus semua tabel dalam database sebelum menjalankan perintah migrasi.  

id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('user'); } }_6

Kehati-hatian ekstra harus dilakukan dengan php artisan make:migration create_users_table --path=app/database/migrations_25 pada aplikasi yang berbagi basis data karena menghapus semua tabel dalam basis data itu

Membuat model dengan migrasi

Saat membuat model, Anda dapat menggunakan opsi —migration (atau -m) untuk membuat migrasi database yang sesuai

id(); $table->string('name'); $table->string('role'); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('user'); } }_7

Dengan menggunakan perintah ini, Laravel membuat Genre. php model file di direktori app/Model dan php artisan make:migration create_users_table --path=app/database/migrations26 file migrasi di database/migrasi

Menutup pikiran

Anda telah menempuh perjalanan jauh, selamat

Pada artikel ini, Anda telah mempelajari cara menggunakan migrasi untuk meningkatkan aplikasi Laravel Anda. Kode sumber untuk file migrasi, termasuk contoh yang disorot, tersedia di GitHub. Anda juga dapat menemukan informasi lebih lanjut tentang migrasi Laravel di dokumentasi resmi. Sekarang Anda dapat melihat bahwa migrasi diperlukan untuk memantau perubahan basis data, yang membantu deteksi kesalahan dan rollback jika terjadi kesalahan

Jika Anda ingin melihat kekuatan Laravel digabungkan dengan ButterCMS, periksa tutorial kami. Cara Membuat Blog dengan Laravel (dan Mengirim Notifikasi Slack)

Postingan terbaru

LIHAT SEMUA