Laravel 8 新功能:使用 schema:dump 来加速 Migration 和测试

405 阅读2分钟

Laravel 8 将于今年晚些时候发布一个新的 schema:dump 命令。 此命令对现有项目非常有用,因为它删除了不再需要的旧迁移并加快了测试和 CI process。 Taylor Otwell 在他的 pull request 中解释了此功能:

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


当此文件存在并且 php artisan migration 或 php 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 分支中,这意味着它将在 Laravel 8 中可用。要了解有关此功能的更多信息,最好的途径是 8.x Schema Dump

原文地址:laravel-news.com/schema-dump


译文地址:learnku.com/laravel/t/4…

更多学习内容请访问:

腾讯T3-T4标准精品PHP架构师教程目录大全,只要你看完保证薪资上升一个台阶(持续更新)​

以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的官方群点击此处