我正在使用Capistrano为我的Rails应用程序部署定期更新,并将版本号作为字符串保存在全局常量中。
我希望能够为特定更新部署/运行一个简单的脚本,这将对数据库执行一些操作(我正在使用 mongoid ,并且我修改了架构一点)
我们说我的版本低于0.1.25并升级到0.1.26,我想为0.1.25的服务器运行此自定义脚本一次或以下(脚本不会再次运行以进行下一次更新,如0.1.26至0.1.27)
MyModel.all.each do |instance|
instance.new_field_with_v26 = somefunction
end
我相信这可以作为Capistrano任务实现,但是如何检索该常量的先前值? (Application::VERSION_NUMBER
)
答案 0 :(得分:1)
您可以使用迁移系统执行此操作,然后可以运行Capistrano。例如:https://github.com/adacosta/mongoid_rails_migrations
至少,这样的东西可以作为模板:
我希望这有用。