W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
遷移是一種數(shù)據(jù)庫的版本控制??梢宰寛F(tuán)隊(duì)在修改數(shù)據(jù)庫結(jié)構(gòu)的同時(shí),保持彼此的進(jìn)度一致。遷移通常會(huì)和 結(jié)構(gòu)生成器 一起使用,可以簡單的管理數(shù)據(jù)庫結(jié)構(gòu)。
使用 Artisan CLI 的 make:migrate
命令建立遷移文件:
php artisan make:migration create_users_table
遷移文件會(huì)建立在 database/migrations
目錄下,文件名會(huì)包含時(shí)間戳記,在執(zhí)行遷移時(shí)用來決定順序。
--table
和 --create
參數(shù)可以用來指定數(shù)據(jù)表名稱,以及遷移文件是否要建立新的數(shù)據(jù)表。
php artisan make:migration add_votes_to_users_table --table=users php artisan make:migration create_users_table --create=users
php artisan migrate
注意: 如果在執(zhí)行遷移時(shí)發(fā)生「class not found」錯(cuò)誤,試著先執(zhí)行
composer dump-autoload
命令后再進(jìn)行一次。
有些遷移操作是具有破壞性的,意味著可能讓你遺失原本保存的數(shù)據(jù)。為了防止你在上線環(huán)境執(zhí)行到這些遷移命令,你會(huì)被提示要在執(zhí)行遷移前進(jìn)行確認(rèn)。加上 --force
參數(shù)執(zhí)行強(qiáng)制遷移:
php artisan migrate --force
php artisan migrate:rollback
php artisan migrate:reset
php artisan migrate:refresh php artisan migrate:refresh --seed
Laravel 可以簡單的使用 seed 類,填充測試數(shù)據(jù)到數(shù)據(jù)庫。所有的 seed 類放在 database/seeds
目錄下??梢允褂萌魏文阆胍念惷Q,但是應(yīng)該遵守某些大小寫規(guī)范,如 UserTableSeeder
之類。默認(rèn)已經(jīng)有一個(gè) DatabaseSeeder
類。在這個(gè)類里,使用 call
方法執(zhí)行其他的 seed 類,讓你控制填充的順序。
class DatabaseSeeder extends Seeder { public function run() { $this->call('UserTableSeeder'); $this->command->info('User table seeded!'); }}class UserTableSeeder extends Seeder { public function run() { DB::table('users')->delete(); User::create(['email' => 'foo@bar.com']); }}
要執(zhí)行數(shù)據(jù)填充,可以使用 Artisan CLI 的 db:seed
命令:
php artisan db:seed
默認(rèn) db:seed
命令會(huì)執(zhí)行 DatabaseSeeder
,可以使用它來調(diào)用其他 seed 類,不過,也可以使用 --class
參數(shù)指定要單獨(dú)執(zhí)行的類:
php artisan db:seed --class=UserTableSeeder
你也可以使用 migrate:refresh
命令填充數(shù)據(jù),它會(huì)回滾并且再次執(zhí)行所有遷移:
php artisan migrate:refresh --seed
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: