我试图将包含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
也不是我新创建的管理员。
我该如何解决这个问题?
答案 0 :(得分:0)
当您部署到Heroku时,您的代码会在您的dynos上更新。您的数据库没有。必须运行迁移,例如通过heroku run rake db:migrate
或release 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数据库,并通过查询创建用户,因为这是最安全的方法。