我是RoR上的新手。我使用ActiveAdmin和Devise构建了一个小应用程序,希望将其部署在Heroku上。
当我在Heroku上推送我的应用程序时,它可以正常运行,但数据库似乎为空!实际上,当我尝试登录ActiveAdmin管理面板时,我的本地登录不匹配...
此外,我的应用程序的其他数据库完全为空...
我想我没有正确填写database.yml,但是我不知道该怎么做...:/
Database.yml:
# SQLite version 3.x
# gem install sqlite3
#
# Ensure the SQLite 3 gem is defined in your Gemfile
# gem 'sqlite3'
#
default: &default
adapter: sqlite3
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000
development:
<<: *default
database: db/development.sqlite3
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
<<: *default
database: db/test.sqlite3
production:
<<: *default
database: db/production.sqlite3
如果您能帮助我或指导我解决问题,我将不胜感激!
谢谢您的关注! ^^
答案 0 :(得分:0)
production: <<: *default database: db/production.sqlite3
您不能在heroku上使用sqlite3,因为它是基于文件系统的,并且每次重新启动时都会创建一个带有全新文件系统的dyno。旧的dyno被杀死,您的sqlite3数据文件也随之被杀死。
在heroku上使用客户端服务器数据库,例如Postgresql。 heroku指南对此进行了详细介绍。
答案 1 :(得分:0)
这些步骤是如何将本地数据库推送到heroku并创建数据库
heroku pg:backups:restore 'https://s3.amazonaws.com/me/items/3H0q/mydb.dump' DATABASE_URL
获取数据库信息
heroku pg
->给我数据库的名字 例如:HEROKU_POSTGRESQL_CYAN
在heroku上重置数据库
heroku pg:reset HEROKU_POSTGRESQL_CYAN
查找本地数据库的名称
运行将本地数据库推送到Heroku 打开config / database.yml并找到数据库
heroku pg:push fashions_development HEROKU_POSTGRESQL_CYAN