1. 程式人生 > 實用技巧 >Laravel入坑指南(9)——資料遷移與填充

Laravel入坑指南(9)——資料遷移與填充

當我們開發完成一個(小)專案,釋出到線上時,我們需要將本地資料庫遷移到伺服器上,並且填充初始化資料。而Laravel框架規定了一套完善的資料遷移與填充機制。

在官網中分別介紹了以下四個命令:

php artisan make:migration

php artisan migrate

php artisan make:seeder

php artisan db:seed

分別來建立遷移(migration)和填充器(seeder),並執行。但是,如何建立、編寫填充器並不是我們這一節的重點。試問有哪位,會一行一行寫程式碼,編寫用於建立表和填充資料的php程式碼?如果有,只能說,大俠請看下一篇。

寫在話題前面,現在我的實驗資料庫lab中,有一張名為organization的表。實驗過程中,都是以這張表

本節的重點,我們著重介紹如何自動生成遷移、執行遷移、自動生成資料填充、執行填充。這個世界上不缺牛人,感謝這些牛B的大俠為我們提供這麼多便利的工具。

1、結構遷移

(1) 為了將本地庫的資料表結構自動建立為migration檔案,我們需要預先安裝個庫(傳送門):

我們不需要自己clone,不需要自己手動配置,只需在專案根目錄下執行:

composer require --dev "kitloong/laravel-migrations-generator" -vvv

(2) 匯出organiztion表的遷移結構

php artisan migrate:generate organization

匯出的遷移結構被存放到了/database/migrations目錄下。

(3) 在線上環境匯入

將專案/database/migrations傳到線上環境中,並執行以下命令:

php artisan migrate --force

命令執行完成後,就會發現,線上資料庫中被匯入了organization表。同時,資料庫中自動建立了migrations表,這張表的作用是登記已經遷移成功的表結構。如果下次想要重新遷移一次,需要清空這張表對應的資料。

到這一步,該遷移的表結構,已經都遷移成功了。接下來,在遷移成功的表結構中,填充初始資料。

2、資料填充

(1) 同樣,為了自動將本地資料匯出為seeder,我們需要先安裝下面的庫

composer require "orangehill/iseed" -vvv

在網上很多文章中,還需要進行下面兩個步驟,但是在我的版本中是不需要的。這兩個步驟記錄在此,僅供參考:

在/config/app.php中新增:

'providers' => [
    ...
    Orangehill\Iseed\IseedServiceProvider::class,
],

並執行:

composer dump-autoload

(2) 匯出organization表的填充資料

php artisan iseed organization --force

匯出的填充資料,會自動放到/database/seeds目錄中。

(3) 在線上環境中匯入

將/database/seeds下的檔案傳到線上環境,並執行以下命令:

php artisan db:seed --force

執行完成之後,資料就自動填充進線上資料庫中了。

這一篇到這裡就結束了,Laravel的外部外掛也是相當強大,我們可以合理利用於些外部外掛幫助我們開發過程中處理重複繁瑣的步驟。好了,我們下一篇再見:)

--------------------------- 我是可愛的分割線 ----------------------------

最後博主借地宣傳一下,漳州程式設計小組招新了,這是一個面向漳州青少年資訊學/軟體設計的學習小組,有意向的同學點選連結,聯絡我吧。