数据迁移
新建迁移文件有两种方式:
- 新建一个students表的迁移文件
php artisan make:migration create_students_table
--table和--create参数可以用来指定数据表名称以及迁移文件是否要建立新的数据表。
例如:
php artisan make:migration create_students_table --create=students
之后会在迁移文件中默认生成一个id字段和一个timestamps()---它会生成create_at和update_at字段。 - 生成模型的同时生成迁移文件
php artisan make:model Student -m
-m参数会创建该模型对应的迁移文件。
laravel假定每个数据表都有一个数值型的主键(id),laravel只有在每个表都有数值型主键时才会正常运行。所以,对于每一个laravel应用,都要确保定义的主键使用的是increments()方法。
每个迁移类都包含两个方法:up方法可为数据库添加新的数据表,字段或索引;而down方法则是回滚数据库迁移。
创建完迁移文件后执行php artisan migrate
生成相应数据表。
数据填充
- 创建一个填充文件
php artisan make:seeder StudentTableSeeder
- 执行单个填充文件
php artisan db:seed --class=StudentTableSeeder
- 批量执行填充文件
php artisan db:seed
填充文件创建好后可以在run()方法中插入任何你想插入的数据,可以使用查询构造器手动插入,也可以使用eloquent插入。
例如:
DB::table('books')->insert([
['isbn' => '978-7-115-39409-5', 'name' => 'The Little Prince'],
['isbn' => '960-1-123-12223-4', 'name' => 'Oliver Twist'],
]);
之后执行
php artisan db:seed --class=BookTableSeeder
执行成功后会在数据库中看到填充的数据。
如果需要批量执行填充,需要先在DatabaseSeeder.php文件中引入一下:
$this->call(BookTableSeeder::class);
之后执行php artisan db:seed
就会又增加两条数据。
如何想要改变数据表,可以执行php artisan migrate:refresh
命令来重新创建整个数据库。
如果想要刷新数据库并执行数据填充,则执行php artisan migrate:refresh --seed
命令。