數(shù)據(jù)遷移
新建遷移文件有兩種方式:
- 新建一個(gè)students表的遷移文件
php artisan make:migration create_students_table
--table和--create參數(shù)可以用來(lái)指定數(shù)據(jù)表名稱以及遷移文件是否要建立新的數(shù)據(jù)表桃漾。
例如:
php artisan make:migration create_students_table --create=students
之后會(huì)在遷移文件中默認(rèn)生成一個(gè)id字段和一個(gè)timestamps()---它會(huì)生成create_at和update_at字段。 - 生成模型的同時(shí)生成遷移文件
php artisan make:model Student -m
-m參數(shù)會(huì)創(chuàng)建該模型對(duì)應(yīng)的遷移文件。
laravel假定每個(gè)數(shù)據(jù)表都有一個(gè)數(shù)值型的主鍵(id),laravel只有在每個(gè)表都有數(shù)值型主鍵時(shí)才會(huì)正常運(yùn)行。所以搞疗,對(duì)于每一個(gè)laravel應(yīng)用,都要確保定義的主鍵使用的是increments()方法。
?每個(gè)遷移類都包含兩個(gè)方法:up方法可為數(shù)據(jù)庫(kù)添加新的數(shù)據(jù)表鱼鸠,字段或索引;而down方法則是回滾數(shù)據(jù)庫(kù)遷移羹铅。
?創(chuàng)建完遷移文件后執(zhí)行php artisan migrate
生成相應(yīng)數(shù)據(jù)表蚀狰。
數(shù)據(jù)填充
- 創(chuàng)建一個(gè)填充文件
php artisan make:seeder StudentTableSeeder
- 執(zhí)行單個(gè)填充文件
php artisan db:seed --class=StudentTableSeeder
- 批量執(zhí)行填充文件
php artisan db:seed
填充文件創(chuàng)建好后可以在run()方法中插入任何你想插入的數(shù)據(jù),可以使用查詢構(gòu)造器手動(dòng)插入职员,也可以使用eloquent插入麻蹋。
例如:
DB::table('books')->insert([
['isbn' => '978-7-115-39409-5', 'name' => 'The Little Prince'],
['isbn' => '960-1-123-12223-4', 'name' => 'Oliver Twist'],
]);
之后執(zhí)行
php artisan db:seed --class=BookTableSeeder
執(zhí)行成功后會(huì)在數(shù)據(jù)庫(kù)中看到填充的數(shù)據(jù)。
如果需要批量執(zhí)行填充焊切,需要先在DatabaseSeeder.php文件中引入一下:
$this->call(BookTableSeeder::class);
之后執(zhí)行php artisan db:seed
就會(huì)又增加兩條數(shù)據(jù)扮授。
如何想要改變數(shù)據(jù)表,可以執(zhí)行php artisan migrate:refresh
命令來(lái)重新創(chuàng)建整個(gè)數(shù)據(jù)庫(kù)专肪。
如果想要刷新數(shù)據(jù)庫(kù)并執(zhí)行數(shù)據(jù)填充刹勃,則執(zhí)行php artisan migrate:refresh --seed
命令。