首頁 > php框架 > Laravel > laravel 怎麼更改表格結構

laravel 怎麼更改表格結構

藏色散人
發布: 2021-12-31 11:59:34
原創
2327 人瀏覽過

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影片教學

#

以上是laravel 怎麼更改表格結構的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板