fervo / release-phase-migrations-bundle
用于在Heroku上运行发布阶段迁移的包
1.2.0
2021-10-06 07:24 UTC
Requires
- php: ~5.3|~7.0|~8.0
- doctrine/dbal: ~2.5
- doctrine/doctrine-migrations-bundle: ^1.2|^2.0
- fervo/advisory-locker: ^1.0.0
- symfony/console: ~2.7|~3.0|~4.0|~5.0
- symfony/framework-bundle: ~2.7|~3.0|~4.0|~5.0
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
这就完了?
是的。如果您想确保您的部署是零停机时间,您需要做两件事
- 启用预启动。使用预启动的所有常规警告仍然适用:https://devcenter.heroku.com/articles/preboot#caveats
- 确保所有迁移都具有向后兼容性,即您的旧代码库仍然可以在迁移的数据库上运行。根据您所做的工作,这可能是一个非常严格的限制。