(二)数据迁移和填充

数据迁移

新建迁移文件有两种方式:

  • 新建一个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命令。

你可能感兴趣的:((二)数据迁移和填充)