laravel 怎么更改表結構

laravel更改表結構的方法:1、生成migration文件;2、執行命令“php artisan make:migration…”;3、添加“$table->text(‘images’)->nullable()…”即可。

laravel 怎么更改表結構

本文操作環境:Windows7系統、Laravel5.7版、Dell G3電腦。

laravel 怎么更改表結構?

使用 laraval migration 修改數據庫表結構

之前一直使用 sql 文件來保存并跟蹤數據庫表結構的變化。但是使用 sql 文件有以下弊端:

  • 無法判斷哪些 sql 文件執行了,哪些沒執行。雖然加了日期做為 sql 文件名前綴,但是在多人開發,且長時間沒有更新線上數據表結構時,經常要撓頭

  • 執行 sql 文件是件體力活。當你面對十幾個 sql alter 文件時,逐個執行非常累心。

  • 多套開發、生產環境同步起來還是費時費力。例如,PC 開發機上進行了一次修改,還要同步到筆記本開發環境上,想想都難受。

這些問題,遠不如執行一行 migration 來的痛快。

增加一個新字段

例如,我要給 articles 表增加一個 images 字段。

首先需要生成 migration 文件,執行命令

php?artisan?make:migration?add_images_to_articles_table?--table=articles

輸出結果為

Created?Migration:?2018_03_21_225819_add_images_to_articles_table

對應的 database/migrations/ 目錄下會自動生成一個文件

database/migrations/2018_03_21_225819_add_images_to_articles_table.php

可以看到文件名前面綴上了日期和時間。

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

按照官方文檔,加上 images 字段,保存修改。執行命令

php?artisan?migrate

輸出

Migrating:?2018_03_21_225819_add_images_to_articles_table Migrated:??2018_03_21_225819_add_images_to_articles_table

這時查看數據表 migrations 會發現多了一行記錄。

laravel 怎么更改表結構

然后就是把修改同步到生產環境了。唯一的區別就是,生產環境服務器上會要求確認是否執行該命令。

************************************** *?????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

修改字段

這不倉促發布造成了 500 錯誤

SQLSTATE[HY000]:?General?error:?1364?Field?'images'?doesn't?have?a?default?value

只需要再新建一個 migration 文件即可,加入

$table->text('images')->nullable()->change();

線上再次執行 migrate 即可解決。

相關推薦:最新的五個Laravel視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享