千家信息网

如何快速搞定laravel数据填充与数据迁移

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容主要讲解"如何快速搞定laravel数据填充与数据迁移",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何快速搞定laravel数据填充与数据迁移"
千家信息网最后更新 2026年11月02日如何快速搞定laravel数据填充与数据迁移

本篇内容主要讲解"如何快速搞定laravel数据填充与数据迁移",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何快速搞定laravel数据填充与数据迁移"吧!

项目开发时,一般都会有到项目测试数据的准备操作,以前都是基于PHP代码自主编写sql语句,然后循环的插入到数据库中里面,当当我们接触过laravel数据库后,就可以很方便的完成项目的测试数据准备。

数据迁移

1. 创建数据迁移文件

系统为我们准备了非常方便的artisan命令行工具,直接进行创建即可。使用命令:

#格式是固定的 create_表名_table  注意表名必须加s,不然执行迁移时会报错
php artisan make:migration create_articles_table

运行命令后,我们可以发现,database/migrations文件夹中多了一个文件。

打开新文件,里面有两个方法up和down,就是一个对应创建数据库,一个对应删除。

2. 修改迁移文件

我们可以在里面添加字段,常见的字段我给大家罗列出来

$table->id();//id  默认主键,自增
$table->tinyInteger('cate_id');//相当于 TINYINT
$table->smallInteger('posts');//相当于 SMALLINT
$table->integer('votes');//相当于 INT
$table->char('name', 4);//定长字符串,相当于带长度的 CHAR
$table->string('title', 100);//变长字符串,相当于带长度的 VARCHAR
$table->text('description');//长文本数据
$table->longText('description');//超长文本数据
$table->timestamps();//相当于可空的 created_at 和 updated_at TIMESTAMP

里面还有限制字段的 「修饰符」,可以直接连接在字段后面,进行链式操作。常用的修饰符有:

->nullable()             此字段允许写入 NULL 值
->unique() 字段唯一
->default($value) 为字段指定 "默认" 值
->comment('my comment') 为字段增加注释
->autoIncrement() 将 INTEGER 类型的字段设置为自动递增的主键

3. 执行迁移

执行迁移命令即可生成数据表。

php artisan migrate

注:强制执行迁移可在命令后面加上-force(不建议使用)

php artisan migrate --force

4. 回滚迁移

有时候,我们发现刚创建完的迁移缺少字段,或者有修改的地方,这时候就可以先回滚一下,然后再次执行迁移命令即可。

php artisan migrate:rollback

系统还提供了回滚几步的操作,直接在后面加上 --step=步数 即可,最多五步。

php artisan migrate:rollback --step=2

系统还提供了几个便捷的迁移命令:

#migrate:reset 命令将会滚回你应用程序所有的迁移:
php artisan migrate:reset

#migrate:refresh 命令将会在回滚你所有的迁移后执行 migrate 命令
php artisan migrate:refresh

#migrate:fresh 命令将会删除数据库中所有的数据表并在之后执行 migrate 命令
php artisan migrate:fresh

这些都可以结合需要自行使用,有数据的情况下使用refresh,没有数据的情况下,直接使用fresh,更为快捷。

数据填充

注意:laravel框架中已经内置了数据填充依赖包,不用安装,如果在其他项目中需要使用数据填充,可以安装使用。

composer require fzaninotto/faker

创建模型和数据迁移

因为数据填充是要配合模型来实现的,所以这里要创建模型,然后包含数据迁移,数据填充文件。

php artisan make:model Models/Article -a

修改迁移文件后,执行迁移创建数据表

php artisan migrate

修改ArticleFactory.php模型工厂文件

对应数据库的字段,如果是手动创建该文件需要use对应模型

修改seeder文件

在run 方法中添加,调用刚才写好的模型工厂方法,注意这里需要use模型


use App\Models\Article;
use Illuminate\Database\Seeder;

class ArticleSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
factory(Article::class, 50)->create();
}
}

注意:Faker 生成的数据默认是英文,可以在 config/app.php 中将 faker_locale 设置为 zh_CN;

调用Seeders

在DatabaseSeeders文件run方法中添加一行

$this->call(ArticleSeeder::class);

如果有多个的时候可以使用数字方式

$this->call([
UserSeeder::class,
PostSeeder::class,
CommentSeeder::class,
]);

执行数据填充

完成 seeder 类的编写之后,你可能需要使用 dump-autoload 命令重新生成 Composer 的自动加载器:

composer dump-autoload

然后执行填充命令,可以执行db:seed

php artisan db:seed

还可以直接执行migrate --seed

php artisan migrate --seed

这时候,我们打开数据库查看,发现内容已经填充进去啦。

到此,相信大家对"如何快速搞定laravel数据填充与数据迁移"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

数据 命令 字段 文件 模型 数据库 方法 项目 内容 数据表 系统 准备 生成 字符 字符串 工厂 情况 文本 长度 学习 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技企业 互联网科技未来 与互联网科技公司 百单互联网科技有限公司 互联网金融科技平台 奔汉互联网科技 融贸通互联网科技 互联网科技的未来发展 四川狮子座互联网科技 互联网科技公司做什么 海南购全球互联网科技 西藏七维空间互联网科技有限公司 智腾互联网科技有限公司 新兴科技互联网创新大赛颁奖典礼 注册互联网科技公司经营范围大全 电子科技大学互联网创业大赛 互联网科技手机排行榜 中国新注册互联网科技 科技互联网专业务虚会材料 互联网科技快速发展优美句子 上海卓越科技互联网 知域互联网科技有限公司大骗子 深圳育鹏互联网科技有限公司招聘 佛山市拉法互联网科技有限公司 长沙茂晟互联网科技有限公司 伊宁互联网科技做什么的 上海创道互联网络科技有限公司 云鲸互联网络科技有限公司 互联网科技职业技能培训学校 河南商务圈互联网科技有限公司
0