如何在生产中向rails app添加数据?

时间:2016-08-24 22:57:45

标签: ruby-on-rails

我即将手动添加一些用户(因为我想让他们成为管理员,例如user.admin = true。之前,在开发过程中,我使用种子做了这个,但我相信(纠正我)如果我错了)你不应该以这种方式在生产中使用种子。我还应该做些什么呢?

2 个答案:

答案 0 :(得分:2)

有很多选择,每种选择各有利弊。

  • 在Rails控制台中设置用户
    • 优点:简单,可以根据需要自定义
    • 缺点:不可重现
  • 在迁移中添加用户
    • 优势:如果这是新表或其他表中存在相关数据,您可以立即设置新数据作为迁移的一部分
    • 缺点:不是标准使用迁移脚本
  • 使用rake任务设置用户
    • 优势:重现步骤的代码将会检入您的回购
    • 缺点:如果你只想这样做一次,那么rake任务就会过度

最佳解决方案可能是在应用的scripts/目录中添加脚本,详细说明步骤,让您的团队审核此代码,然后使用rails runner运行该脚本。

答案 1 :(得分:0)

您是否可以访问生产命令行?如果你正在使用Heroku,你可以这样做:

$ heroku run rails console
> user = User.new
> user.name = "The name"
// repeat for all other fields
> user.admin = true
> user.save

或者,如果您已经在数据库中将它们作为非管理员

$ heroku run rails console
> user = User.find_by(name: "Their Name")
> user.update_attribute(:admin, true)