Laravel框架資料遷移和填充

2021-08-10 06:50:06 字數 3243 閱讀 6898

一、資料遷移

1、使用 artisan 命令make:migration來建立乙個新的遷移:

php artisan make:migration create_users_table

// 可以使用 --path指定生成的目標路徑

// 還可以一次性建立model和migration

// 下述命令會做兩件事情:

// 建立用於建立 posts 表的遷移,該遷移檔案位於 database/migrations 目錄下。

php artisan make:model --migration post

執行成功後會在database\migrations目錄下生成如下格式的php檔案

2016_05_05_060000_create_users_table.php

<?php

useilluminate\database\schema\blueprint;

useilluminate\database\migrations\migration;

class

createuserstable

extends

migration

); }

/*** reverse the migrations.

**@return void

*/public

function

down

()

}

遷移的順序跟生成遷移檔案的時間有關係。如果要修改表結構,比如說新增某個字段,需要在建立表之後執行,

比如說為users表新增軟刪除(也就是新增deleted_at欄位)

php

artisan

make

:migration

update_users_table

在生成的php檔案中新增如下**

<?php

useilluminate\database\schema\blueprint;

useilluminate\database\migrations\migration;

class

updateuserstable

extends

migration

); }

/*** reverse the migrations.

**@return void

*/public

function

down

() );

}}

二、資料填充

要生成乙個填充器,可以通過 artisan 命令make:seeder。所有框架生成的填充器都位於database/seeders目錄:

php

artisan

make

:seeder

userstableseeder

在生成的userstableseeder.php中

<?php

useilluminate\database\seeder;

class

usertableseeder

extends

seeder

}

在databaseseeder類中,你可以使用call方法執行額外的填充類,

<?php

useilluminate\database\seeder;

useilluminate\database\eloquent\model;

class

databaseseeder

extends

seeder

}

最後執行

php artisan db:seed

// 指定某個表的類名

// 指定類名後不需要在databaseseeder.php中新增call方法

php artisan db:seed --class=userstableseeder

3、通過factory模型倉庫填充

在databaseseeder類中,run方法中使用call方法執行相應的填充類

<?php

use illuminate\database\seeder;

class

databaseseeder

extends

seeder

}

在database\factories\modelfactory.php中定義倉庫模型

生成model

// 以post舉例

php artisan make:model post

生成填充類

php

artisan

make

:seeder

poststableseeder

在poststableseeder.php中呼叫

<= 30) shuffle($tags); $posttags = [$tags[0]]; if (mt_rand(1, 100)

<= 30) $post->synctags($posttags); }); } }

<?php

use illuminate\database\seeder;

class

tagstableseeder

extends

seeder

}

如果想在執行填充入庫前對資料模型中的某個屬性進行相關的操作,可以在相應的模型中定義set(字段)attribute方法

比如說對posts表中的字段content_raw進行操作,同時還可以在該方法中操作其他字段,如content_html欄位

public

function

setcontentrawattribute

($value)

遷移並填充資料

php

artisan

migrate--

seed

laravel 資料遷移

執行遷移檔案 php artisan migrate 資料庫中就會看到我們新新增的字段 報錯 illuminate database queryexception sqlstate 42000 syntax error or access violation 1071 specified key w...

mysql資料遷移框架 mysql資料遷移

本文總結各種場景下的資料複製 遷移 轉換。1 匯入 匯出 資料匯出 mysqldump uroot p dbname dbname.sql 包含表結構和表資料 資料匯入 mysql uroot p dbname dbname.sql 注意 匯出的sql檔案包含舊表資訊,請修改其中的create ta...

資料遷移和填充

資料遷移和填充 1.執行遷移檔案 php artisan migrate install 資料庫中的批次號的作用 用於建立記錄遷移檔案的記錄資料表。執行up方法 2.執行up方法之前需要刪除系統自帶的遷移檔案,只保留自己的 原因 執行遷移方法會執行遷移資料夾中所有沒被執行的遷移檔案 命令 php a...