我在本地设置了远程连接,需要将其推送到heroku。当我把它推到heroku时,我得到一个错误说:
未配置RemoteDBName。
我只是假设(也搜索并看到)heroku使用自己的config.yml文件。
答案 0 :(得分:0)
想出这个,对于任何连接到heroku远程数据库的人都可能看到:
Heroku用你自己的文件替换你的database.yml文件,覆盖你的任何东西。
解决这个问题:
在初始化文件夹文件夹中创建一个新文件,我称之为我的load_remote.rb。在这个文件中写下这行代码:
REMOTE_DB = YAML.load_file(“#{RAILS_ROOT} /config/YOURNEWFILEHERE.yml”)
使用以下代码行在任何远程模型中建立连接:
establish_connection Remote_DB ['无论你在这里用yml文件命名你的连接字符串']
答案 1 :(得分: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确保所有内容都与db无关。如果您想将最新的开发数据库推送到Heroku,只需运行heroku db:push