[英]Script execution upon ruby on rails app restart
我正在开发Rails上的ruby应用程序(rails v4)。
我对模型进行了一些更改,一旦生产中的应用程序更新并重新启动,就需要通过脚本修改数据。
在更新代码时,是否有一种巧妙的方法可以告诉铁路服务器执行脚本(一次)。
就像您在Gemfile中添加gem一样,直到您进行捆绑更新,服务器才会启动。
听起来您可以将这个一次性脚本放入Rails迁移中。 在终端中运行以下命令:
rails generate migration NameOfMyDataMigration
用对您有意义的名称替换NameOfMyDataMigration
这将在db/migrate
中创建一个新的迁移脚本,如下所示:
class NameOfMyDataMigration < ActiveRecord::Migration
def change
# your data modification logic
end
end
将其部署到生产中时,可以使用以下命令执行它:
rake db:migrate
该迁移将只运行一次。
在此处了解有关Rails迁移的更多信息: http : //guides.rubyonrails.org/v4.2/active_record_migrations.html
尽管迭戈的答案是正确的,但我想指出另一种方法。 基本上有两种更新数据的方法。 第一个是迭戈答案中所述的迁移。 另一个是Rake任务。 每个都有几个参数。
与迁移相比,主要优点是Rake任务不依赖于代码。 结果,当新的开发人员加入该项目时,您无需压制迁移或从架构文件构建数据库。
您应该看一下Elle Meredith撰写的有关Rails中数据迁移的文章 ,然后为您选择最佳方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.