laravel5.5数据库之数据填充(实践)
发布日期:2025-04-04 04:26:19 浏览次数:14 分类:精选文章

本文共 1558 字,大约阅读时间需要 5 分钟。

数据库迁移与填充数据攻略

数据库迁移与填充数据攻略

数据库迁移是开发过程中常需要进行的操作,一是用于实现数据版本控制,二是用于批量生成测试数据。在Laravel框架中,实现数据库迁移和填充数据相对简便,本文将重点介绍常用方法。

一、背景

在软件开发过程中,团队成员可能会使用各自不同的测试数据,导致测试结果出现不一致。为了避免这一问题,对数据库中的测试数据也有必要实施版本控制。数据库迁移的方式类似于文件迁移,通过填充文件保存数据并执行填充操作。

填充数据主要有两种方式:一种是编写Seeder文件填充数据,另一种是利用模型工厂生成批量数据。

二、编写Seeder填充数据

  • 初始化Seeder文件
  • 通过运行以下命令生成新的Seeder文件:

    php artisan make:seeder GoodsTableSeeder

    生成后的Seeder文件会被存储在/database/seeds目录下。文件内容大致如下:

    1. 在run方法中添加数据
    2. 编辑GoodsTableSeeder.php,添加以下插入数据代码:

      public function run()
      {
      DB::table('goods')->insert([
      'goods_name' => '电动牙刷',
      'goods_price' => '120.23',
      'num' => 30,
      'descr' => '这是一条测试数据',
      ]);
      }
      1. 执行数据插入
      2. 运行以下命令执行数据填充:

        php artisan db:seed --class=GoodsTableSeeder

        若需要重新加载模型关系,可先运行:

        composer dump-autoload

        三、使用模型工厂填充数据

        模型工厂适用于需要批量生成数据的情况。

      3. 创建模型文件
      4. 确保项目根目录下有正确的模型配置,常规情况下已经配置好,若需要可执行以下命令:

        php artisan make:model Models/Goods
        1. 定义工厂
        2. 通过修改/database/factories/ModelFactory.php添加工厂定义:

          define(Goods::class, function(Faker $faker) {
          return [
          'goods_name' => $faker->name,
          'goods_price' => $faker->numberBetween(100, 3000),
          'num' => $faker->numberBetween(20,50),
          'descr' => $faker->text,
          ];
          });
          1. 创建Seeder文件
          2. 重复第一步,创建对应的Seeder文件并添加批量生成代码:

            public function run()
            {
            $goods = factory(Goods::class, 10)->make();
            Goods::insert($goods->toArray());
            }
            1. 注册Seeder
            2. DatabaseSeeder.php中添加如下内容:

              $this->call([
              GoodsTableSeeder::class,
              ]);
              1. 执行批量填充
              2. 运行以下命令执行批量数据生成:

                php artisan db:seed

                注意事项:

                此方法可用于开发阶段,生产环境不建议使用,以免大量测试数据影响数据库性能。建议开发完成后,根据实际需要删除测试数据或采用数据清理方案。

                数据库迁移与填充数据操作完成后,恭喜您成功实施数据库数据管理!

    上一篇:laravel5.5数据库迁移入门实践
    下一篇:laravel5.5报错总结

    发表评论

    最新留言

    哈哈,博客排版真的漂亮呢~
    [***.90.31.176]2025年04月19日 12时03分57秒