1. ホーム
  2. mysql

[解決済み] Railsのデータベース管理方法.yml

2023-07-09 22:10:13

質問

複数の人がプロジェクトに参加していて、データベースの場所(特にソケット)が異なる場合、Railsのdatabase.ymlを処理する最善の方法は何でしょうか。

どのように解決するのですか?

まず database.yml をテンプレートファイルに移動します。

Gitを使っている場合は

git mv config/database.yml config/database.yml.example
git commit -m "moved database.yml to an example file"

あるいは、Subversionの場合。

svn move config/database.yml config/database.yml.example
svn ci -m "moved database.yml to an example file"

次に、.ymlのバージョンは無視します。

Gitを使っている場合。

cat > .gitignore
config/database.yml

git add .gitignore
git commit -m "ignored database.yml"

Subversionの場合。

svn propset svn:ignore config "database.yml"

3つ目は、インストールする database.ymlはどこだ、おい? :

script/plugin install git://github.com/technicalpickles/wheres-your-database-yml-dude

このプラグインは、Rake のタスクが実行される前に、開発者が自分自身のローカルバージョンの config/database.yml .

4つ目は、Capistranoのデプロイタスクを設定することです。

# in RAILS_ROOT/config/deploy.rb:
after 'deploy:update_code', 'deploy:symlink_db'

namespace :deploy do
  desc "Symlinks the database.yml"
  task :symlink_db, :roles => :app do
    run "ln -nfs #{deploy_to}/shared/config/database.yml #{release_path}/config/database.yml"
  end
end

5番目は、サーバー版のdatabase.ymlをアップロードします。

scp config/database.yml user@my_server.com:/path_to_rails_app/shared/config/database.yml