Cara menukar struktur jadual dalam laravel: 1. Hasilkan fail migrasi; 2. Jalankan arahan "php artisan make:migration..."; ')- >nullable()..." Itu sahaja.
Persekitaran pengendalian artikel ini: sistem Windows 7, Laravel versi 5.7, komputer Dell G3.
Bagaimana untuk menukar struktur jadual dalam laravel?
Gunakan migrasi laraval untuk mengubah suai struktur jadual pangkalan data
Saya telah menggunakan fail sql sebelum ini untuk menyimpan dan menjejaki perubahan dalam struktur jadual pangkalan data. Walau bagaimanapun, menggunakan fail sql mempunyai kelemahan berikut:
Adalah mustahil untuk menentukan fail sql yang telah dilaksanakan dan yang belum. Walaupun tarikh ditambah sebagai awalan nama fail sql, apabila berbilang orang membangun dan struktur jadual data dalam talian tidak dikemas kini untuk masa yang lama, saya sering perlu menggaru kepala
Melaksanakan fail sql adalah sukar. Apabila anda berhadapan dengan lebih daripada sedozen fail alter sql, melaksanakannya satu demi satu adalah sangat memenatkan.
Menyegerakkan berbilang pembangunan dan persekitaran pengeluaran masih memakan masa dan susah payah. Sebagai contoh, jika pengubahsuaian dibuat pada mesin pembangunan PC dan perlu disegerakkan dengan persekitaran pembangunan komputer riba, adalah tidak selesa untuk memikirkannya.
Masalah ini jauh kurang menyenangkan daripada melaksanakan garis migrasi.
Tambah medan baharu
Sebagai contoh, saya ingin menambah medan imej pada jadual artikel.
Mula-mula anda perlu menjana fail migrasi Jalankan arahan
php artisan make:migration add_images_to_articles_table --table=articles
Hasil output ialah
Created Migration: 2018_03_21_225819_add_images_to_articles_table
Satu fail akan dijana secara automatik dalam pangkalan data yang sepadan. /migrations/ directory
database/migrations/2018_03_21_225819_add_images_to_articles_table.php
Anda boleh melihat bahawa nama fail didahului oleh tarikh dan masa.
public function up() { Schema::table('articles', function (Blueprint $table) { $table->text('images'); }); }
Ikuti dokumentasi rasmi, tambah medan imej dan simpan perubahan. Jalankan arahan
php artisan migrate
dan keluarkan
Migrating: 2018_03_21_225819_add_images_to_articles_table Migrated: 2018_03_21_225819_add_images_to_articles_table
Apabila anda melihat jadual data migrasi, anda akan mendapati terdapat baris rekod tambahan.
Kemudian segerakkan perubahan pada persekitaran pengeluaran. Satu-satunya perbezaan ialah pelayan pengeluaran akan meminta anda untuk mengesahkan sama ada untuk melaksanakan arahan.
************************************** * Application In Production! * ************************************** Do you really wish to run this command? (yes/no) [no]: > yes Migrating: 2018_03_21_225819_add_images_to_articles_table Migrated: 2018_03_21_225819_add_images_to_articles_table
Ubah suai medan
Keluaran tergesa-gesa ini menyebabkan 500 ralat
SQLSTATE[HY000]: General error: 1364 Field 'images' doesn't have a default value
Cukup buat fail migrasi baharu 🎜>
dan laksanakan migrasi semula dalam talian untuk menyelesaikan masalah.$table->text('images')->nullable()->change();
Lima tutorial video Laravel terbaharu
Atas ialah kandungan terperinci Bagaimana untuk menukar struktur jadual dalam laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!