繁体   English   中英

Ruby on Rails应用重启后执行脚本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM