怎樣快速搞定laravel資料填充與資料遷移
專案開發時,一般都會有到專案測試資料的準備操作,以前都是基於PHP程式碼自主編寫sql語句,然後迴圈的插入到資料庫中裡面,噹噹我們接觸過laravel資料庫後,就可以很方便的完成專案的測試資料準備。
資料遷移
1. 建立資料遷移檔案
系統為我們準備了非常方便的artisan命令列工具,直接進行建立即可。使用命令:
#格式是固定的 create_表名_table 注意表名必須加s,不然執行遷移時會報錯
php artisan make:migration create_articles_table
執行命令後,我們可以發現,database/migrations資料夾中多了一個檔案。
開啟新檔案,裡面有兩個方法up和down,就是一個對應建立資料庫,一個對應刪除。
2. 修改遷移檔案
我們可以在裡面新增欄位,常見的欄位我給大家羅列出來
$table->id();
//id 預設主鍵,自增
$table->tinyInteger(
'cate_id');
//相當於 TINYINT
$table->smallInteger(
'posts');
//相當於 SMALLINT
$table->integer(
'votes');
//相當於 INT
$table->char(
'name',
4);
//定長字串,相當於帶長度的 CHAR
$table->string(
'title',
100);
//變長字串,相當於帶長度的 VARCHAR
$table->text(
'description');
//長文字資料
$table->longText(
'description');
//超長文字資料
$table->timestamps();
//相當於可空的 created_at 和 updated_at TIMESTAMP
裡面還有限制欄位的 「修飾符」,可以直接連線在欄位後面,進行鏈式操作。常用的修飾符有:
->nullable() 此欄位允許寫入
NULL 值
->unique() 欄位唯一
->default($value) 為欄位指定 “預設” 值
->comment(
'my comment') 為欄位增加註釋
->autoIncrement() 將 INTEGER 型別的欄位設定為自動遞增的主鍵
3. 執行遷移
執行遷移命令即可生成資料表。
php artisan migrate
注:強制執行遷移可在命令後面加上–force(不建議使用)
php artisan migrate
--force
4. 回滾遷移
有時候,我們發現剛建立完的遷移缺少欄位,或者有修改的地方,這時候就可以先回滾一下,然後再次執行遷移命令即可。
php
artisan
migrate
:rollback
系統還提供了回滾幾步的操作,直接在後面加上 --step=步數 即可,最多五步。
php artisan migrate:
rollback
--step=2
系統還提供了幾個便捷的遷移命令:
#migrate
:reset 命令將會滾回你應用程式所有的遷移:
php
artisan
migrate
:reset
#migrate
:refresh 命令將會在回滾你所有的遷移後執行
migrate 命令
php
artisan
migrate
:refresh
#migrate
:fresh 命令將會刪除資料庫中所有的資料表並在之後執行
migrate 命令
php
artisan
migrate
:fresh
這些都可以結合需要自行使用,有資料的情況下使用refresh,沒有資料的情況下,直接使用fresh,更為快捷。
資料填充
注意:laravel框架中已經內建了資料填充依賴包,不用安裝,如果在其他專案中需要使用資料填充,可以安裝使用。
composer
require fzaninotto/faker
建立模型和資料遷移
因為資料填充是要配合模型來實現的,所以這裡要建立模型,然後包含資料遷移,資料填充檔案。
php artisan
make:model Models/Article -a
修改遷移檔案後,執行遷移建立資料表
php artisan migrate
修改ArticleFactory.php模型工廠檔案
對應資料庫的欄位,如果是手動建立該檔案需要use對應模型
修改seeder檔案
在run 方法中新增,呼叫剛才寫好的模型工廠方法,注意這裡需要use模型
<?php
use App\Models\Article;
use
Illuminate\
Database\
Seeder;
class
ArticleSeeder
extends
Seeder
{
/**
* Run the database seeds.
*
*
@return void
*/
public
function
run
()
{
factory(Article::class,
50)->create();
}
}
注意:Faker 生成的資料預設是英文,可以在 config/app.php 中將 faker_locale 設定為 zh_CN;
呼叫Seeders
在DatabaseSeeders檔案run方法中新增一行
$
this->call(ArticleSeeder::
class);
如果有多個的時候可以使用數字方式
$
this->call([
UserSeeder::
class,
PostSeeder::class,
CommentSeeder::class,
]);
執行資料填充
完成 seeder 類的編寫之後,你可能需要使用 dump-autoload 命令重新生成 Composer 的自動載入器:
composer
dump-autoload
然後執行填充命令,可以執行db:seed
php
artisan
db
:seed
還可以直接執行migrate --seed
php artisan migrate
--seed
這時候,我們開啟資料庫檢視,發現內容已經填充進去啦。
大家可以一起交流!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69923331/viewspace-2703589/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Laravel資料庫遷移和填充(支援中文)Laravel資料庫
- laravel資料庫遷移Laravel資料庫
- ThinkPHP5.1 中的資料庫遷移和資料填充PHP資料庫
- 快速實現本地資料備份與FTP遠端資料遷移FTP
- 雲資料庫管理與資料遷移資料庫
- Laravel migration (資料庫遷移) 的使用Laravel資料庫
- laravel 資料庫遷移時報錯Laravel資料庫
- Laravel 學習之資料庫遷移Laravel資料庫
- Laravel 資料遷移給表新增註釋Laravel
- Laravel5.4框架中資料庫遷移Laravel框架資料庫
- Laravel模型工廠填充資料Laravel模型
- Laravel 優雅填充 SQL 資料LaravelSQL
- mongodb資料庫備份與恢復(資料庫資料遷移)MongoDB資料庫
- Kafka資料遷移Kafka
- Harbor資料遷移
- gitlab資料遷移Gitlab
- 資料庫遷移資料庫
- Jenkins搭建與資料遷移實踐Jenkins
- 多源資料快速遷移匯聚,杉巖資料推出智慧資料湖新通道
- Oracle資料庫中資料行遷移與行連結Oracle資料庫
- MySQL資料庫遷移與MySQL資料庫批量恢復MySql資料庫
- 資料遷移(1)——通過資料泵表結構批量遷移
- Mysql百萬級資料遷移,怎麼遷移?實戰過沒?MySql
- Mysql資料遷移方法MySql
- 【Hive】hive資料遷移Hive
- 【Redis】 redis資料遷移Redis
- redis資料庫遷移Redis資料庫
- congregate遷移gitlab資料Gitlab
- 系統資料遷移
- 資料庫遷移 :理解資料庫
- Fastdfs資料遷移方案AST
- 快速實現地圖遷移資料視覺化地圖視覺化
- 功能解讀|快速上手 OceanBase 資料遷移服務
- 3分鐘短文:造假!Laravel為資料庫填充偽資料Laravel資料庫
- mysql 備份與遷移 資料同步方法MySql
- 伺服器資料遷移的方法-硬體不同如何遷移資料伺服器
- 遷移資料庫資料考慮問題資料庫
- Oracle資料庫(資料泵)遷移方案(上)Oracle資料庫