您好,登錄后才能下訂單哦!
這篇文章主要介紹了Laravel怎樣填充SQL數據,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
我們都知道在 Laravel 開發過程中,對于數據庫結構的修改可以通過 migration
完成,對于數據庫生產數據的預填充可以使用 seeder
完成。
如果預填充的數據比較多,而又是在開發過程中產生的,手寫 seeder
中的插入就顯得過于死板,你可能需要一筆一筆的復制修改這些內容:
\DB::table('software_categories')->insert(array( 0 => array( 'id' => 1, 'name' => '操作系統', 'description' => NULL, 'deleted_at' => NULL, 'created_at' => '2021-01-19 19:22:31', 'updated_at' => '2021-01-19 19:22:36', 'parent_id' => NULL, 'order' => '0', ), 1 => array( 'id' => 2, 'name' => '辦公應用', 'description' => NULL, 'deleted_at' => NULL, 'created_at' => '2021-01-19 19:22:53', 'updated_at' => '2021-01-19 19:22:53', 'parent_id' => NULL, 'order' => '0', ), 2 => array( 'id' => 3, 'name' => '圖像處理', 'description' => NULL, 'deleted_at' => NULL, 'created_at' => '2021-01-19 19:22:59', 'updated_at' => '2021-01-19 19:22:59', 'parent_id' => NULL, 'order' => '0', ), 3 => array( 'id' => 4, 'name' => '網絡工具', 'description' => NULL, 'deleted_at' => NULL, 'created_at' => '2021-01-19 19:23:04', 'updated_at' => '2021-01-19 19:23:10', 'parent_id' => NULL, 'order' => '0', ), 4 => array( 'id' => 5, 'name' => '影音工具', 'description' => NULL, 'deleted_at' => NULL, 'created_at' => '2021-01-19 19:23:35', 'updated_at' => '2021-01-19 19:23:35', 'parent_id' => NULL, 'order' => '0', ), 5 => array( 'id' => 6, 'name' => '系統工具', 'description' => NULL, 'deleted_at' => NULL, 'created_at' => '2021-01-19 19:23:47', 'updated_at' => '2021-01-19 19:23:47', 'parent_id' => NULL, 'order' => '0', ), 6 => array( 'id' => 7, 'name' => '設計工具', 'description' => NULL, 'deleted_at' => NULL, 'created_at' => '2021-01-19 19:24:05', 'updated_at' => '2021-01-19 19:24:05', 'parent_id' => NULL, 'order' => '0', ), ));
這些數據如果夠多,我相信你也一定會找一個好辦法來批量處理。
一,我可以在開發過程中對預填充的數據全部處理完成后,從數據庫導出 .sql
文件,再作為腳本導入到生產環境。
二,我可以將數據庫中已存在的數據進行結構化處理,生成 seeder
文件,之后就可以通過 artisan db:seed
命令進行填充。
這兩種方法都可以。
使用數據庫管理工具,如 HeidiSQL 導出需要的數據庫表至 .sql
文件。
在 Laravel 中,可以編寫一個 command
,邏輯中寫入以下代碼:
DB::unprepared(file_get_contents('path/data.sql'));
這是我認為最佳的方案,畢竟 Laravel 提供了完善的數據庫遷移和填充機制,何不利用它?
執行 composer require orangehill/iseed -vvv
安裝包。
執行 php artisan iseed table_name
會自動在 database/seeders
目錄中創建對應表名的 seeder
文件。
而后,我們就可以使用 artisan db:seed --class=YourTableSeeder
來指定填充。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Laravel怎樣填充SQL數據”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。