【问题标题】:How to find the code that generates the database.yml file?如何找到生成 database.yml 文件的代码?
【发布时间】:2016-03-17 14:59:04
【问题描述】:

我正在接管一个旧的 Rails 项目。这是更大的公司努力重构公司中许多旧技术的一部分。在众多更改中,我们将 MySQL 从 5.1 升级到 5.7,并且我们获得了一个新的、更强大的服务器来充当我们的数据库服务器。现在我想将 Rails 应用程序指向新服务器。

在我进行开发的 Mac 上,我有一个如下所示的数据库文件:

  # MySQL.  Versions 5.0+ are recommended.
  #
  # Install the MYSQL driver
  #   gem install mysql2
  #
  # Ensure the MySQL gem is defined in your Gemfile
  #   gem 'mysql2'
  #
  # And be sure to use new-style password hashing:
  #   http://dev.mysql.com/doc/refman/5.0/en/old-client.html
  #
  default: &default
    adapter: mysql2
    encoding: utf8
    pool: 5
    socket: /var/lib/mysql/mysql.sock

  development:
    <<: *default
    database: wawa_onset_development
    username: root
    password:

  # Warning: The database defined as "test" will be erased and
  # re-generated from your development database when you run "rake".
  # Do not set this db to the same as development or production.
  test:
    <<: *default
    database: wawa_onset_test
    username: root
    password:

  staging:
    <<: *default
    database: wawa_onset_stage
    username: onset_stage
    password: <%= ENV['STAGE_DATABASE_PASSWORD'] %>

  preview:
    <<: *default
    database: wawa_onset_preview
    username: onset_preview
    password: <%= ENV['PREVIEW_DATABASE_PASSWORD'] %>

  production:
    <<: *default
    database: wawa
    username: onset_prod
    password: <%= ENV['PRODUCTION_DATABASE_PASSWORD'] %>

要将我的代码部署到登台,我这样做:

  vagrant up

  vagrant ssh

  cap staging deploy 

部署过程会创建一个如下所示的 database.yml 文件:

  staging:
    adapter: mysql2
    encoding: utf8
    pool: 5
    socket: /var/lib/mysql/mysql.sock
    database: wawa_onset_stage
    username: onset_stage
    password: <%= ENV['STAGE_DATABASE_PASSWORD'] %>
    host: localhost

我需要更改“主机”、“数据库”和“用户名”,但我不知道在哪里更改这些东西。我们不在 git repo 中保留 database.yml,所以我无法编辑该文件并提交它。我需要找到生成 database.yml 文件的模板。这通常存储在哪里?通常使用哪些 gem 来生成 database.yml 文件?

【问题讨论】:

  • 您必须检查deploy 文件夹或tasks 文件夹才能找到与此相关的正在执行的相关任务。检查您的config/deploy.rb 文件并尽可能发布它的内容。

标签: ruby-on-rails capistrano


【解决方案1】:

它可能不是宝石我的猜测是它在您的应用程序的共享文件夹中。

标准 capistrano 部署的应用程序具有类似的结构

shared/
repo/
current -> /path/to/releases/20160226153309
releases/

您的 database.yml 可能在 shared/config 文件夹中

你的 deploy.rb 可能有类似

set :linked_files, %w{config/database.yml config/secrets.yml}

但您的 deploy.rb 将包含您在服务器上定位文件所需的信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    • 2019-04-28
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多