## **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

- Laravel5.5總結
- 項目管理
- 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子查詢