使用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文件存储在项目之外。 2并使用脚本来处理这样的事情。现在在项目中,在项目中使用脚本是没有意义的。
我可以在执行这样的命令时动态改变舞台吗?或者我应该创建一个调用外部脚本的任务吗?
谢谢!
答案 0 :(得分:0)
您可以将DoctrineMigrationsBundle
用于此类目的。这个包非常通用,并且具有整洁的控制台命令行界面,您可以将其简单地构建到capifony
脚本中。在symfony和它自己的参考文档中阅读它:
http://symfony.com/doc/current/bundles/DoctrineMigrationsBundle/index.html
https://github.com/doctrine/DoctrineMigrationsBundle/blob/master/Resources/doc/index.rst