## **Laravel5.5 数据迁移和填充**
##### <blockquote class="danger"><p>出现的原因:在一个多人开发的项目中,你的同事修改了某个数据库结构并修改了代码,通过 git 你可以即时的同步同事修改的代码,但是数据库结构,你只能通过手工的方式来复制同事修改的 SQL 语句,执行以保证数据库的结构一致。那么,Laravel 中的数据库迁移概念,就是用于解决团队中保证数据库结构一致的方案</p></blockquote>
* [ ] 数据的迁移
1. 创建数据表:包含三个操作
1.1:创建迁移表文件[路径位置:\database\migrations\,如果是第一次执行,也会生成migrations表],创建迁移表文件命令:
php artisan make:migration create_test_table --create=test




1.2:创建数据表文件[会生成test表],创建迁移表文件命令:php artisan migrate
[可以指定迁移某个文件:php artisan migrate --path=/database/migrations/2023_08_04_101638_create_ht_user_logs_table.php]



2. 重命名表名称
2.1:创建重命名表的迁移文件,命令:php artisan make:migration rename_test_to_tests --table test






3. tests表中增加头像(avatar)字段
3.1:新加一个迁移文件,命令:php artisan make:migration add_avatar_into_tests





4. 删除数据表
4.1:在迁移文件中,down方法中编写内容:Schema::dropIfExists('tests');

4.2:执行命令:php artisan migrate:rollback


表:tests也被删除了,无法截图
* [ ] 数据的填充
* [ ] 注意:有时间执行填充命令,会提示:填充文件不存在问题,但是填充文件其实是存在,这个时候需要使用命令:composer dump-autoload重新加载一次,再执行填充命令即可


1. 数据填充分类两种方式:编写seeder填充数据与使用工厂填充数据
<span style="color:yellow;background-color:red">1.1:seeder填充数据</span>
1.1.1:seeder填充数据:进入到项目根目录运行Artisan命令,生成Seeder类。文件都被放置在 database/seeds 目录下,命令:
```
php artisan make:seeder TestsTableSeeder
```

1.1.2:修改填充文件:DatabaseSeeder.php 和 TestsTableSeeder.php
DatabaseSeeder.php

TestsTableSeeder.php

1.1.3:执行填充,将会把所有填充文件中的数据插入数据库,填充命令:
```
php artisan db:seed【使用了DatabaseSeeder.php】
```
```
php artisan db:seed --class=TestsTableSeeder【可以不使用DatabaseSeeder.php,直接调用】
```
<span style="color:red">注释:如果上述填充命令:php artisan db:seed 执行后,数据填充不成功,则先执行命令</span>:
```
composer dump-autoload
```


<span style="color:yellow;background-color:red">1.2:工厂填充数据</span>
1.2.1:工厂填充数据:创建工厂模型(路径:/database/factories/)创建TestsFactory.php工厂类,内容随便写,如图所示:
创建测试模型:TestsModel.php

创建测试工厂类:TestsFactory.php (复制或使用命令都可以)

创建TestsTableSeeder填充文件 (复制或使用命令都可以)

在DatabaseSeeder.php类文件中调用填充文件

在根目录执行命令:php artisan db:seed 或者 特定的:php artisan db:seed --class=TestsTableSeeder

- Laravel下载
- 项目管理
- Manager
- Vip专属链接管理
- Api
- Vip专属链接管理(Api)
- php artisan route:list 路由显示不全
- 数据迁移和填充
- Laravel5.5事件监听机制(注册-监听-任务调度)
- 章节1:未启用任务调度
- 章节2:启用任务调度
- 使用记录
- 数据迁移使用记录
- 安装laravel5.5日志观察器
- Laravel5.5消息队列(rabbitmq)
- 1:laravel自带消息队列
- 2:RabbitMq队列使用
- 第三方支付扩展:yansongda/laravel-pay
- 安装指引
- 控制器内使用
- 分表查询(mysql+mongo)
- 前端Vue按钮导出问题
- 单元测试
- 模型使用
- laravel9数据填充
- laravel9子查询
- Laravel反射机制