Home>Article>PHP Framework> How Laravel fills SQL data gracefully

How Laravel fills SQL data gracefully

藏色散人
藏色散人 forward
2021-01-26 13:43:38 2144browse

The following columnLaravel Tutorialwill introduce to you laravel’s method of solving Laravel’s elegant filling of SQL data. I hope it will be helpful to friends in need!

How Laravel fills SQL data gracefully

Background

We all know that during the Laravel development process, modifications to the database structure can be made throughmigrationComplete, pre-population of database production data can be completed usingseeder.

If there is a lot of pre-populated data and it is generated during the development process, the insertion in handwrittenseederseems too rigid, and you may need to copy and modify it one by one. These contents:

\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', ), ));

If there is enough data, I believe you will find a good way to batch process it.

Option

One, I can export the.sqlfile from the database after all the pre-populated data are processed during the development process. Then import it into the production environment as a script.

Second, I can structure the existing data in the database and generate aseederfile, which can then be filled in through theartisan db:seedcommand.

Both methods are available.

SQL files are imported directly

Use database management tools such as HeidiSQL to export the required database tables to the.sqlfile.

In Laravel, you can write acommand, and write the following code in the logic:

DB::unprepared(file_get_contents('path/data.sql'));

Seeder fills

This This is the best solution in my opinion. After all, Laravel provides a complete database migration and filling mechanism, why not take advantage of it?

Executecomposer require orangehill/iseed -vvvinstallation package.

Executephp artisan iseed table_namewill automatically create aseederfile corresponding to the table name in thedatabase/seedersdirectory.

Then, we can useartisan db:seed --class=YourTableSeederto specify the filling.

The above is the detailed content of How Laravel fills SQL data gracefully. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:learnku.com. If there is any infringement, please contact admin@php.cn delete