Rails部署应用程序版本特定的更新脚本

时间:2015-08-02 22:24:17

标签: ruby-on-rails-4 capistrano3 mongoid4

我正在使用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

1 个答案:

答案 0 :(得分:1)

您可以使用迁移系统执行此操作,然后可以运行Capistrano。例如:https://github.com/adacosta/mongoid_rails_migrations

至少,这样的东西可以作为模板:

  • 将架构版本存储在数据库中。
  • 当您对架构进行更改时,请在代码中增加架构版本。
  • 编写Rake任务以运行相关的迁移。

我希望这有用。

相关问题