【问题标题】:Rails : How to configure database.yml for Heroku?Rails:如何为 Heroku 配置 database.yml?
【发布时间】:2018-07-18 19:28:07
【问题描述】:

我是 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

如果您能帮助我或指导我找到解决方案,我将不胜感激!

感谢您的关注! ^^

【问题讨论】:

    标签: ruby-on-rails database heroku


    【解决方案1】:
    production:
      <<: *default
      database: db/production.sqlite3
    

    您不能在 heroku 上使用 sqlite3,因为它是基于文件系统的,并且在每次重新启动时都会创建一个新的测功机,并使用一个全新的文件系统。旧的测功机被杀死,你的 sqlite3 数据文件也随之被杀死。

    在 heroku 上使用客户端-服务器数据库,例如 Postgresql。这在 heroku 指南中有很好的介绍。

    【讨论】:

    • Ty 为您解答 :) 我应该如何向我的应用“询问”这个问题?
    • @EmilienLecoffre:对于一个小的答案来说,这个话题太大了,无论如何它超出了范围。它在互联网上也有很好的描述。从谷歌搜索开始,比如“rails use postgresql on heroku”
    • 我改变了:生产:适配器:postgresql 池: 超时:5000 数据库:db/production.pg 现在我可以了在在线应用程序上编辑数据库但是,是否可以将本地数据库的内容推送到生产数据库中?
    【解决方案2】:

    这些步骤是如何将本地数据库推送到heroku并创建数据库

    heroku pg:backups:restore 'https://s3.amazonaws.com/me/items/3H0q/mydb.dump' DATABASE_URL
    
    1. 获取数据库信息

      heroku pg
      

    -> 给我数据库的名字 例如:HEROKU_POSTGRESQL_CYAN

    1. 在heroku上重置数据库

      heroku pg:reset HEROKU_POSTGRESQL_CYAN
      
    2. 查找本地数据库的名称

      • 打开config/database.yml,找到数据库 开发环境的名称。 eg: fashions_development => 输入终端给你的名字
    3. 运行将本地数据库推送到 Heroku 打开config/database.yml,找到数据库

      heroku pg:push fashions_development HEROKU_POSTGRESQL_CYAN
      

    【讨论】:

    • 我已经完成了这些步骤,它的工作方式与您完全一样。我的问题是我的本地数据库信息没有被推送到我的生产数据库中:(
    • rake db:migrate 只会创建你的数据库结构
    • 那么如何同时推送结构和数据呢? ^^
    • @EmilienLecoffre 我只是编辑了答案,即如何分四步将本地数据库推送到heroku。试试看,如果您需要任何帮助,请告诉我!
    • Ty for this edit :) 第一次:我遇到了“找不到本地 psql 命令!有关安装 psql 的帮助,请参阅 local-postgresql”错误,我通过安装 PostgreSQL 修复了该错误并手动更新我的 PATH 变量。然后我收到以下错误:( $ heroku pg:push db/development.sqlite3 DATABASE_URL heroku-cli: Pushing db/development.sqlite3 ---> postgresql-flat-56203 pg_dump: [programme d'archivage (db)] la connexion à la base de données « db » a échoué : FATAL: 角色“Lecoffre Emilien”不存在
    猜你喜欢
    • 2015-03-08
    • 2017-09-21
    • 1970-01-01
    • 2011-08-17
    • 2017-02-16
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多