Laravel Migration

在使用migration功能之前,請至少閱讀三遍官方文檔

migration功能雖然表面看上去比較簡單,但其中要是一不留神,就會遇到很多很多錯誤

功能

快速命令

  • 創(chuàng)建模型并生成migration文件
    php artisan make:model <model> -m
  • 快速回滾
    php artisan migrate:rollback
  • 快速填充
    php artisan migrate --seed
  • 快速回滾填充
    php artisan migrate:refresh --seed

設(shè)置

  • 指定存儲引擎(默認MyISAM)
    $table->engine = 'InnoDB';
  • 指定自增主鍵
    $table->increments('id');
  • 可空timestamp
    $table->nullableTimestamps();
  • 軟刪除
    $table->softDeletes();
  • 字段說明
    $table->string('code')->comment('編碼');
  • 外鍵約束
$table->integer('foreign_id')->nullable()->unsigned()->comment('comment');
$table->foreign('foreign_id')->references('id')->on('foreign_talbe')->onDelete('cascade');

特別注意

1、外鍵問題
在添加外鍵的時候,一定要確保依賴的外鍵表要提前創(chuàng)建。
如果已經(jīng)創(chuàng)建了,則可以通過修改migration文件名的時間來更改migration的生成順序。

2、model factory
model factory用于定義假數(shù)據(jù),具體用法可以參考fzaninotto/faker的用法

  • 創(chuàng)建關(guān)聯(lián)外鍵
    在model factory文件中,可以使用elequent將數(shù)據(jù)取出來,可以參考以下用法
$sales_orders = NewSalesOrder::select('id', 'code')->get()->toArray();

  • 多個model factory文件
    可以將model factories文件分割成單個文件,即每個model的factory定義都保存在一個單獨的文件下(只需要放在/database/factories下即可),文件名可以命名為<ModelFactory.php>即可

3、seeder
在定義好migration和model factory之后,在seeder里面調(diào)用即可(要注意順序,否則可能外鍵關(guān)聯(lián)會出現(xiàn)問題)

factory(Chemical::class, 10)->create();

4、更改模型名或表名
如果需要更改表名,不推薦直接修改migration定義的文件名,因為需要修改的地方很多,而且還導(dǎo)致migration文件里面的記錄跟migation文件不一致而導(dǎo)致回滾出現(xiàn)問題(對于團隊來說簡直是災(zāi)難)
推薦使用laravel migration的更改表名的功能

5、要特別關(guān)注migations數(shù)據(jù)表
新手在使用的時候,或多或少都會遇到一些問題,導(dǎo)致migrations表的記錄和實際生成的數(shù)據(jù)表不一致

6、推薦一次只創(chuàng)建一個表
確定沒問題后,再創(chuàng)建新的表。因為migration的錯誤提示,有時候并不是很明確指明問題出現(xiàn)在哪里

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、保存復(fù)雜的配置 場景:例如對于一個用戶系統(tǒng),需要很多字段來保存不同的配置,如果要為每個配置都添加一個字段的話,...
    zshanjun閱讀 542評論 0 0
  • 基于5.1 零 、關(guān)閉debug .env文件 一、Laravel 數(shù)據(jù)庫操作 1.1查詢構(gòu)建器(Query B...
    皮丘吉爾閱讀 914評論 0 0
  • 1、岳陽樓 姜善蛇 40元一斤 2、想吃巴厘龍蝦 208元 3、臺北路王師傅豆皮 7元 4、黃太婆熱干面 馬上成為...
    順便啊閱讀 326評論 0 0
  • 事情是這樣的,你要理解一個不??吹窖┑哪戏饺嗽诒狈降暮锟吹酱笱┘婏w之后的激動與狂喜。原諒我只有粗糙的雙手,只能...
    鹿暮小姐i閱讀 382評論 0 3
  • “我希望有個如你一般的人 如山間清爽的風(fēng) 如古城溫暖的光 從清晨到夜晚 由山野到書房 只要最后是你 就好” 今晚連...
    清淺行閱讀 289評論 0 1

友情鏈接更多精彩內(nèi)容