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

Laravel

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

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

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

译文地址:https://learnku.com/laravel/t/43497

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 8

学不动了,从5.7 5.8 开始 到6 、 7 。7都还没开始用上就来8了 :cry:

3年前 评论

这更新速度太快了吧

3年前 评论

6.x还没捂热,7就来了,现在还来8

3年前 评论
黑将军

求不更新,学不动了,我还在用5.7

3年前 评论

2017年八月份发布的5.5,去年九月份发布的6.0 ,现在就要发布8.0了?不知道在搞什么。。。

3年前 评论
Zark 3年前
轻描淡写 (作者) 3年前
Zark 3年前

现在发版速度好快啊

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!