Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 有没有办法编辑herokus yml文件_Ruby On Rails_Heroku - Fatal编程技术网

Ruby on rails 有没有办法编辑herokus yml文件

Ruby on rails 有没有办法编辑herokus yml文件,ruby-on-rails,heroku,Ruby On Rails,Heroku,我在本地设置了远程连接,需要将其推送到heroku。当我把它推给heroku时,我得到一个错误,说: 未配置RemoteDBName 我只是假设(也搜索并看到)heroku使用自己的config.yml文件。对于任何连接到heroku上远程数据库的人来说,他们可能会看到: Heroku用自己的database.yml文件替换您的database.yml文件,覆盖您的任何内容 要解决这个问题: 在配置文件夹中创建一个新文件,将其命名为which.yml 在此文件中设置连接字符串 在initial

我在本地设置了远程连接,需要将其推送到heroku。当我把它推给heroku时,我得到一个错误,说:

未配置RemoteDBName


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

对于任何连接到heroku上远程数据库的人来说,他们可能会看到:

Heroku用自己的database.yml文件替换您的database.yml文件,覆盖您的任何内容

要解决这个问题:

  • 在配置文件夹中创建一个新文件,将其命名为which.yml
  • 在此文件中设置连接字符串
  • 在initializers文件夹中创建一个新文件,我称之为mine load_remote.rb。在该文件中,编写以下代码行:

    REMOTE_DB=YAML.load_文件(“#{RAILS_ROOT}/config/YOURNEWFILEHERE.yml”)

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

    建立远程连接数据库['无论您在这里的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实际上会在您将站点推送到其服务器时替换您的apps database.yml。无论您在本地使用什么,您的数据都将存储在他们的一个奇特的PostgreSQL服务器中——这意味着您根本不必考虑database.yml(当然,开发目的除外)。Taps确保一切都是不可知的。如果您想将最新的开发数据库推送到Heroku,只需运行Heroku db:push