>  기사  >  PHP 프레임워크  >  [Laravel 8의 새로운 기능] 스키마:dump를 사용하여 마이그레이션 및 테스트 속도를 높입니다.

[Laravel 8의 새로운 기능] 스키마:dump를 사용하여 마이그레이션 및 테스트 속도를 높입니다.

藏色散人
藏色散人앞으로
2020-08-11 13:31:302229검색

튜토리얼 칼럼에서 소개한 것입니다. SCHEMA: DUMP를 사용하여 마이그레이션 및 테스트를 가속화하고 도움이 필요한 친구들에게 도움이 되기를 바랍니다!

Laravel 8은 올해 말에 새로운 schema:dump 명령을 출시할 예정입니다. 이 명령은 더 이상 필요하지 않은 이전 마이그레이션을 제거하고 테스트 및 CI 프로세스 속도를 높이므로 기존 프로젝트에 유용합니다. Taylor Otwell은

pull request[Laravel 8의 새로운 기능] 스키마:dump를 사용하여 마이그레이션 및 테스트 속도를 높입니다.에서 이 기능을 설명합니다.

이 PR에는 mysqldump 또는 pgdump를 사용하여 스키마의 현재 상태를 전송하는 php artisanschema:dump 명령이 추가되었습니다. 데이터베이스/스키마/{연결}-schema.mysql 파일에 있습니다. schema:dump 命令。 此命令对现有项目非常有用,因为它删除了不再需要的旧迁移并加快了测试和 CI process。 Taylor Otwell 在他的 pull request 中解释了此功能:

此PR增加了 php artisan schema:dump 命令,该命令使用 mysqldump 或 pgdump 将 schema 的当前状态转储到 database/schema/{connection}-schema.mysql 文件中。

当此文件存在并且 php artisan migrationphp artisan migration:fresh 已运行并且尚未对数据库z执行任何迁移(迁移表为空)时,此架构文件将首先加载到数据库中,然后所有未完成的迁移将执行。 这意味着该 schema 文件通常仅在本地开发或 CI 测试期间有效使用。 在生产中,您通常已经具有过去运行的迁移,因此永远不会触发此 schema 文件。

运行 schema:dump 并且项目中存在 schema 转储文件后,您可以删除已将其迁移到生产环境的旧迁移文件。

此功能解决了两个问题:

1、它将清除 schema 文件夹中的旧迁移文件,这些文件在旧项目中可能会很大。

2、由于有了 schema 文件,测试的运行速度要快得多,并且 Laravel不 需要在测试过程中执行所有迁移。

该命令在您的项目中将如下所示:

php artisan schema:dump

# 自动清理旧迁移文件
php artisan schema:dump --prune

# 指定数据库链接
php artisan schema:dump --database=pgsql

此功能已合并到 master이 스키마는 이 파일이 존재하고 php artisan migration 또는 php artisan migration:fresh가 실행되었으며 데이터베이스 z에서 마이그레이션이 수행되지 않았을 때 발생합니다(마이그레이션 테이블이 비어 있음) ) 파일이 먼저 데이터베이스에 로드된 다음 미해결 마이그레이션이 실행됩니다. 즉, 스키마 파일은 일반적으로 로컬 개발 또는 CI 테스트 중에만 사용할 수 있습니다. 프로덕션에서는 일반적으로 이전에 이미 마이그레이션이 실행 중이었으므로 이 스키마 파일은 트리거되지 않습니다.

schema:dump를 실행하고 프로젝트에 스키마 덤프 파일이 존재하면 프로덕션으로 마이그레이션한 이전 마이그레이션 파일을 삭제할 수 있습니다.

이 기능은 두 가지 문제를 해결합니다.

1. 이전 프로젝트에서는 용량이 클 수 있는 스키마 폴더의 이전 마이그레이션 파일을 지웁니다.
🎜2. 스키마 파일 덕분에 테스트가 훨씬 빠르게 실행되며 Laravel은 테스트 프로세스 중에 모든 마이그레이션을 수행할 필요가 없습니다. 🎜🎜명령은 프로젝트에서 다음과 같습니다: 🎜rrreee🎜이 기능은 master 브랜치에 병합되었으며 이는 Laravel 8에서 사용할 수 있음을 의미합니다. 이 기능에 대해 자세히 알아보려면 🎜8.x 스키마 덤프🎜를 사용하는 것이 가장 좋습니다. 🎜🎜🎜원본주소 : https://laravel-news.com/schema-dump🎜🎜번역주소 : https://learnku.com/laravel/t/43497🎜🎜

위 내용은 [Laravel 8의 새로운 기능] 스키마:dump를 사용하여 마이그레이션 및 테스트 속도를 높입니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 learnku.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제