我在本地设置了远程连接,需要将其推送到heroku。当我将其推送到 heroku 时,我收到一条错误消息:

未配置 RemoteDBName。

我只是假设(也搜索并看到)heroku 使用他们自己的 config.yml 文件。

有帮助吗?

解决方案

弄清楚了这一点,对于任何连接到 Heroku 上的远程数据库的人来说,可能会看到以下内容:

Heroku 用他们自己的文件替换你的database.yml 文件,覆盖你的文件中的任何内容。

为了解决这个问题:

  • 在配置文件夹中创建一个新文件,将其命名为whatever.yml
  • 在此文件中设置连接字符串。
  • 在初始化程序文件夹中创建一个新文件,我将其命名为 load_remote.rb。在这个文件中写入这行代码:

    REMOTE_DB = YAML.load_file("#{RAILS_ROOT}/config/YOURNEWFILEHERE.yml")

  • 使用以下代码行在任何远程模型中建立连接:

    建立_connection Remote_DB['无论您在此处的 yml 文件中命名连接字符串']

其他提示

让我告诉你如何当你与Heroku的工作,数据库配置完成。我觉得这可能是一个有点文档中模糊的,有的人得到了它混淆。让我们利用控制台:

zero:~/Projects/crantastic $ heroku console
Ruby console for crantastic.heroku.com
>> puts File.read(Rails.configuration.database_configuration_file)
---
production:
  encoding: unicode
  adapter: postgresql
  username: something_random
  port: 5432
  host: somewhere.at.heroku
  database: something_random
  password: something_random

=> nil
>>

Heroku的实践中代替,当你把你的网站,他们的服务器您的应用程序的database.yml。您的数据将存储在他们看中的PostgreSQL服务器中的一个,不管你在本地使用的 - 这意味着你不必在所有(除发展purpses,自然)考虑的database.yml。水龙头可以确保一切都不可知分贝。如果你想将最新的发展分贝的Heroku,只需运行的Heroku DB:推

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top