推送到Heroku后无法登录Active Admin

时间:2017-12-10 12:30:09

标签: ruby-on-rails ruby heroku activeadmin migrate

我试图将包含active_admin的Rails应用推送到Heroku。

我希望能够在推送到Heroku后登录Active Admin

我使用active_admin构建了一个Rails应用程序。首先,我在localhost上尝试了它。我使用admin@example.com登录,设置了新的管理员,并删除了admin@example.com用户。然后我将我的应用程序推送到GitHub并进一步推向Heroku。我注意到在Heroku上无法访问Active Admin,因此我检查了日志并运行了heroku rake db:migrate。现在我可以切换到/admin的登录站点,但我无法登录。既不是admin@example.com也不是我新创建的管理员。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

当您部署到Heroku时,您的代码会在您的dynos上更新。您的数据库没有。必须运行迁移,例如通过heroku run rake db:migraterelease phase command,您必须创建所需的任何数据。

您在开发机器上配置的任何用户都不会在Heroku上存在。这是一件好事。

您应该可以使用Heroku CLI工具运行heroku run rake db:seed来添加默认管理员用户。或者,您可以运行heroku run rails c并以交互方式创建用户。

答案 1 :(得分:0)

唯一的问题是在seeds.rb文件中,该行表示仅在env = development时使用。这就是它所说的:

AdminUser.create!(email: 'admin@example.com', password: 'password', password_confirmation: 'password') if Rails.env.development?

在像Heroku这样的生产实例中,您必须使用类似PSql的东西,直接连接到您的实例的Heroku PG数据库,并通过查询创建用户,因为这是最安全的方法。