text('images')->nullable(). .. “Dah tu."/> text('images')->nullable(). .. “Dah tu.">

Rumah >rangka kerja php >Laravel >Bagaimana untuk menukar struktur jadual dalam laravel

Bagaimana untuk menukar struktur jadual dalam laravel

藏色散人
藏色散人asal
2021-12-31 11:59:042330semak imbas

Cara menukar struktur jadual dalam laravel: 1. Hasilkan fail migrasi; 2. Jalankan arahan "php artisan make:migration..."; ')- >nullable()..." Itu sahaja.

Bagaimana untuk menukar struktur jadual dalam laravel

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.

Bagaimana untuk menukar struktur jadual dalam laravel

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();

Cadangan berkaitan:
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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn