当前位置: 首页 > 后端技术 > PHP

一篇文章快速搞定laravel数据填充和数据迁移

时间:2023-03-29 15:00:03 PHP

原文地址:https://www.wjcms.net/archive...以前都是基于PHP代码独立编写sql语句,然后循环插入数据库。当我们接触了laravel数据库后,我们就可以轻松完成项目的测试数据准备工作。数据迁移1.创建数据迁移文件系统为我们准备了一个非常方便的artisan命令行工具,直接创建即可。使用命令:#格式固定create_tablename_table注意表名必须加s,否则执行迁移时会报错phpartisanmake:migrationcreate_articles_table运行命令后,我们可以发现有一个更多在数据库/迁移文件夹文件中。打开一个新文件,上下有两种方法,一种对应创建数据库,一种对应删除。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');//超长textdata$table->timestamps();//相当于空created_at和updated_atTIMESTAMP还有一个限制字段的“修饰符”,可以直接在字段后面Connect进行链式操作。常用的修饰符有:->nullable()该字段允许写入NULL值->unique()该字段是唯一的->default($value)指定该字段的“默认”值->comment('我的评论')是字段Addcomment->autoIncrement()设置INTEGER类型字段为自增主键3.执行迁移执行迁移命令生成数据表。phpartisanmigrate注意:要强制迁移,可以添加--force(不推荐)phpartisanmigrate--force4. 来回滚迁移。对于修改的地方,可以先回滚,然后再执行迁移命令。phpartisanmigrate:rollback系统也提供了回滚几步的操作,直接在后面加上--step=steps即可,最多五步。phpartisanmigrate:rollback--step=2  系统也提供了几个方便的迁移命令:#migrate:reset命令会回滚你应用的所有迁移:phpartisanmigrate:reset#migrate:refresh命令会执行迁移回滚所有迁移后的命令phpartisanmigrate:refresh#migrate:fresh该命令将删除数据库中的所有数据表,然后执行迁移命令phpartisanmigrate:fresh这些可以结合您自己的需要使用,使用有数据的时候刷新,没有数据的时候直接用fresh,速度更快。数据填充注意:数据填充依赖包已经内置在laravel框架中,无需安装,如果需要在其他项目中使用数据填充,安装即可使用。Composer需要fzaninotto/faker创建模型和数据迁移因为数据填充是用模型实现的,所以这里我们需要创建一个模型,然后包含数据迁移和数据填充文件。phpartisanmake:modelModels/Article-a修改迁移文件后,执行迁移创建数据表phpartisanmigrate修改数据库对应的ArticleFactory.php模型工厂文件的字段。如果文件是手动创建的,需要在run方法中使用对应的model修改seeder文件,调用刚才写的模型工厂方法,注意这里需要usemodelcreate();}}注意: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的autoloader:composerdump-autoload然后执行填充命令,可以执行db:seedphpartisandb:seed也可以直接执行migrate--seedphpartisanmigrate--seed这个时候我们打开数据库查看一下,发现内容已经填写好了。

猜你喜欢