Symfony Capifony部署时的设置阶段


Symfony Capifony Setting stage during deployment

在使用Capifony部署Symfony应用程序时,我在发出命令时遇到了改变舞台的问题。我想把我的数据库从生产到测试部署时。

这是我的尝试。下面是beta.rb文件:

set :deploy_to, "/var/www/#{domain}/deploy/beta"
after "deploy", "deploy:cleanup"
# Move database from production to beta and dev
# Set stage to production, move database to local
set :stage, "prod"
after "deploy", "database:move:to_local"
# Set stage back to beta, move database to remote beta
set :stage, "beta"
after "deploy", "database:move:to_remote"

过去,我使用capistrano和symfony <在项目外部存储了cap文件。使用脚本来处理这样的事情。现在在项目中使用它,在项目中使用脚本就没有意义了。>

当我执行这样的命令时,我能在飞行中改变舞台吗?还是应该创建一个任务来调用外部脚本?

谢谢!

您可以将DoctrineMigrationsBundle用于此类目的。这个包是非常通用的,有整洁的控制台命令行接口,你可以简单地构建到你的capifony脚本。阅读symfony和它自己的参考文档:

http://symfony.com/doc/current/bundles/DoctrineMigrationsBundle/index.html
https://github.com/doctrine/DoctrineMigrationsBundle/blob/master/Resources/doc/index.rst