0

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

未配置 RemoteDBName。

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

4

2 回答 2

0

想通了这一点,对于任何连接到 heroku 上的远程数据库的人可能会看到这个:

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

要解决这个问题:

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

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

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

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

于 2009-08-12T15:21:41.517 回答
0

让我向您展示使用 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 服务器之一中——这意味着您根本不必考虑 database.yml(当然,开发目的除外)。Taps 确保一切都与数据库无关。如果您想将最新的开发数据库推送到 Heroku,只需运行 heroku db:push

于 2009-11-17T10:58:27.663 回答