如何使用用户输入部署数据库?

时间:2017-11-21 18:11:00

标签: ruby-on-rails deployment ruby-on-rails-5 capistrano capistrano3

我希望在部署后使用秘密数据为数据库设定种子,例如管理员的姓名和电子邮件。我在db / seeds / production / admin.seeds.rb文件中写了以下内容:

STDOUT.puts "Enter e-mail for admin:"
email = STDIN.gets.strip.downcase

STDOUT.puts "Enter password for admin:"
pw = STDIN.gets.strip

STDOUT.puts "Re-enter password for admin:"
pwc = STDIN.gets.strip

u = User.create(email: email, password: pw, password_confirmation: pwc, 
   name: "Administrator", capabilities:"admin")
if u.save
   STDOUT.puts "Admin account created!"
else
   STDOUT.puts "Something went wrong!"
end

但是当我打电话时

cap production rails:rake:db:seed

我只收到第一行“输入管理员的电子邮件:”,我输入了电子邮件并点击了输入,但没有任何反应,好像控制台无法识别任何内容。

如何使用控制台为我的秘密数据播种数据库?

版本:capistrano 3.4.1,rails 5.0.1,ruby 2.4.0。

1 个答案:

答案 0 :(得分:0)

我在那儿呆了很长时间,没有任何解决办法。

然后,我通过在生产数据库中手动手动添加这些信息来解决了这个问题。这样我播种时无需输入任何内容。

对于其他种子文件,我只是打电话

cap production rails:rake:db:seed

将所有保存在生产目录中的文件作为种子。

我希望这种解决方法可以帮助某人。