美文网首页
(二)数据迁移和填充

(二)数据迁移和填充

作者: 乘瓠散人 | 来源:发表于2017-09-21 22:52 被阅读21次
    数据迁移

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

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

    相关文章

      网友评论

          本文标题:(二)数据迁移和填充

          本文链接:https://www.haomeiwen.com/subject/hrvtextx.html