Home > Article > PHP Framework > How Laravel fills SQL data gracefully
The following column Laravel Tutorial will 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!
We all know that during the Laravel development process, modifications to the database structure can be made through migration
Complete, pre-population of database production data can be completed using seeder
.
If there is a lot of pre-populated data and it is generated during the development process, the insertion in handwritten seeder
seems 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.
One, I can export the .sql
file 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 a seeder
file, which can then be filled in through the artisan db:seed
command.
Both methods are available.
Use database management tools such as HeidiSQL to export the required database tables to the .sql
file.
In Laravel, you can write a command
, and write the following code in the logic:
DB::unprepared(file_get_contents('path/data.sql'));
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?
Execute composer require orangehill/iseed -vvv
installation package.
Execute php artisan iseed table_name
will automatically create a seeder
file corresponding to the table name in the database/seeders
directory.
Then, we can use artisan db:seed --class=YourTableSeeder
to 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!