题
我在本地设置了远程连接,需要将其推送到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:推
不隶属于 StackOverflow