> PHP 프레임워크 > Laravel > Laravel이 SQL 데이터를 우아하게 채우는 방법

Laravel이 SQL 데이터를 우아하게 채우는 방법

藏色散人
풀어 주다: 2021-01-27 08:57:36
앞으로
2271명이 탐색했습니다.

Laravel의 우아한 SQL 데이터를 해결하기 위해 Laravel을 소개하는 방법이 필요한 친구들에게 도움이 되길 바랍니다!

Laravel이 SQL 데이터를 우아하게 채우는 방법Background

우리 모두는 Laravel의 개발 과정에서 migration을 통해 데이터베이스 구조 수정이 완료될 수 있다는 것을 알고 있으며, seeder 완료. <span class="header-link octicon octicon-link"></span>미리 입력된 데이터가 많아 개발 과정에서 생성된 경우, 손으로 직접 작성한 <code>seder에 삽입하는 것이 너무 경직될 수 있으므로 내용을 하나씩 복사하여 수정해야 할 수도 있습니다. one:

\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',
                ),
        ));
로그인 후 복사

데이터가 충분하다면 일괄 처리할 수 있는 좋은 방법을 찾을 것이라고 믿습니다. migration 完成,对于数据库生产数据的预填充可以使用 seeder 完成。

如果预填充的数据比较多,而又是在开发过程中产生的,手写 seeder 中的插入就显得过于死板,你可能需要一笔一笔的复制修改这些内容:

DB::unprepared(file_get_contents('path/data.sql'));
로그인 후 복사

这些数据如果够多,我相信你也一定会找一个好办法来批量处理。

方案

一,我可以在开发过程中对预填充的数据全部处理完成后,从数据库导出 .sql 文件,再作为脚本导入到生产环境。

二,我可以将数据库中已存在的数据进行结构化处理,生成 seeder 文件,之后就可以通过 artisan db:seed 命令进行填充。

这两种方法都可以。

SQL文件直接导入

使用数据库管理工具,如 HeidiSQL 导出需要的数据库表至 .sql 文件。

在 Laravel 中,可以编写一个 command,逻辑中写入以下代码:

rrreee

Seeder填充

这是我认为最佳的方案,毕竟 Laravel 提供了完善的数据库迁移和填充机制,何不利用它?

执行 composer require orangehill/iseed -vvv 安装包。

执行 php artisan iseed table_name 会自动在 database/seeders 目录中创建对应表名的 seeder 文件。

而后,我们就可以使用 artisan db:seed --class=YourTableSeeder

🎜🎜옵션 🎜🎜먼저 개발 과정에서 미리 입력된 모든 데이터가 처리된 후 데이터베이스에서 .sql 파일을 내보낸 다음 프로덕션 환경에 스크립트. 🎜🎜둘째, 데이터베이스의 기존 데이터를 구조화하고 seeder 파일을 생성한 다음 artisan db:seed 명령을 통해 채울 수 있습니다. 🎜🎜두 가지 방법 모두 가능합니다. 🎜

🎜🎜SQL 파일을 직접 가져옵니다.

🎜HeidiSQL과 같은 데이터베이스 관리 도구를 사용하여 필요한 데이터베이스 테이블을 .sql 파일로 내보냅니다. 🎜🎜Laravel에서는 명령을 작성하고 로직에 다음 코드를 작성할 수 있습니다. 🎜rrreee

🎜🎜Seeder fill

🎜이것이 제 생각에는 최고의 솔루션입니다. all, Laravel 완벽한 데이터베이스 마이그레이션 및 채우기 메커니즘이 제공됩니다. 이를 활용해 보는 것은 어떨까요? 🎜🎜composer require orangehill/iseed -vvv 설치 패키지를 실행하세요. 🎜🎜php artisan iseed table_name을 실행하면 database/seeders 디렉터리에 테이블 이름에 해당하는 seeder 파일이 자동으로 생성됩니다. 🎜🎜그런 다음 artisan db:seed --class=YourTableSeeder를 사용하여 채우기를 지정할 수 있습니다. 🎜

위 내용은 Laravel이 SQL 데이터를 우아하게 채우는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:learnku.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿