如何在使用用户输入部署后为数据库播种?

How to seed the database after deployment with user input?

我想在部署后用秘密数据为数据库播种,例如管理员的姓名和电子邮件。我在文件 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

我只看到第一行 "Enter e-mail for admin:",我输入了电子邮件并点击了回车,但没有任何反应,就好像控制台无法识别任何东西一样。

如何使用控制台将我的秘密数据植入数据库?

版本:capistrano 3.4.1、rails5.0.1、ruby2.4.0。

卡了好久都没解决。

然后我解决了在我的生产数据库中手动添加这些信息的问题。这样我做种的时候就不需要输入任何东西了。

其他种子文件,我直接调用

cap production rails:rake:db:seed

哪个种子保存在生产目录中的所有文件。

我希望这个变通解决方案可以帮助某人。