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

Bagaimana untuk menukar struktur jadual dalam laravel

藏色散人
Lepaskan: 2021-12-31 11:59:34
asal
2334 orang telah melayarinya

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
Salin selepas log masuk

Hasil output ialah

Created Migration: 2018_03_21_225819_add_images_to_articles_table
Salin selepas log masuk

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
Salin selepas log masuk

Anda boleh melihat bahawa nama fail didahului oleh tarikh dan masa.

public function up()
{
Schema::table('articles', function (Blueprint $table) {
$table->text('images');
});
}
Salin selepas log masuk

Ikuti dokumentasi rasmi, tambah medan imej dan simpan perubahan. Jalankan arahan

php artisan migrate
Salin selepas log masuk

dan keluarkan

Migrating: 2018_03_21_225819_add_images_to_articles_table
Migrated:  2018_03_21_225819_add_images_to_articles_table
Salin selepas log masuk

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
Salin selepas log masuk

Ubah suai medan

Keluaran tergesa-gesa ini menyebabkan 500 ralat

SQLSTATE[HY000]: General error: 1364 Field 'images' doesn't have a default value
Salin selepas log masuk

Cukup buat fail migrasi baharu 🎜>

dan laksanakan migrasi semula dalam talian untuk menyelesaikan masalah.
$table->text('images')->nullable()->change();
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan