fervo/release-phase-migrations-bundle

用于在Heroku上运行发布阶段迁移的包

1.2.0 2021-10-06 07:24 UTC

This package is auto-updated.

Last update: 2024-08-25 17:29:47 UTC


README

包安装

按照常规方式安装。此包需要DoctrineMigrationBundle。因为我们还在内部尝试使用此包,所以我们不愿发布更详细的用法说明。虽然库和包都发布了1.0.0版本,但这主要是因为我们希望能够使用semver进行严格版本控制。一旦我们将其用于生产一段时间,我们将继续更新这些说明。

为什么使用这个而不是仅仅使用Doctrine Migrations

此包是围绕Doctrine Migrations的一个薄包装器。唯一的区别是,在我们开始迁移之前,(根据Heroku的建议)我们尝试在数据库上获取一个咨询锁。如果我们无法获取该锁,则迁移不会执行,并且(如果您将其用于发布阶段迁移),发布将失败。

使用此包

将以下内容添加到您的Procfile中

release: php bin/console fervo:release-phase-migrations:migrate --allow-no-migration -n

这就完了?

是的。如果您想确保您的部署是零停机时间,您需要做两件事

  1. 启用预启动。使用预启动的所有常规警告仍然适用:https://devcenter.heroku.com/articles/preboot#caveats
  2. 确保所有迁移都具有向后兼容性,即您的旧代码库仍然可以在迁移的数据库上运行。根据您所做的工作,这可能是一个非常严格的限制。