2016-03-17 17 views
0

我正在接管一箇舊的Rails項目。這是對企業中大部分舊技術進行重構的大型企業努力的一部分。在許多變化中,我們將MySQL從5.1升級到了5.7,並且我們得到了一臺新的,功能更強大的服務器來充當我們的數據庫服務器。現在我想將Rails應用程序指向新服務器。如何找到生成database.yml文件的代碼?

我的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 

我需要更改「主機」和「數據庫」a找到「用戶名」,但我不知道在哪裏改變這些東西。我們不保存git倉庫中的database.yml,所以我不能編輯這個文件並提交它。我需要找到生成database.yml文件的模板。這通常存儲在哪裏?通常用什麼寶石來生成database.yml文件?

+0

您將不得不檢查'deploy'文件夾或'tasks'文件夾以查找與此相關的相關任務。如果可能,請檢查你的'config/deploy.rb'文件併發布它的內容。 –

回答

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將擁有您需要的信息來在服務器上查找文件。