4

Git には、ステージングとプロダクションの 2 つのブランチがあります。それらは、1 つの実稼働データベースと別のステージング データベースがある同じ VPS にデプロイされます。これにより、本番環境に影響を与えることなく、新しい機能をステージングできます。次に、準備ができたら、データベースの変更をステージングから運用にレプリケートします。

ステージング ブランチが本番環境とは別のデータベース資格情報を持つように設定する最善の方法は何ですか? 現時点では、データベースの資格情報は単一のファイルに保存されています。gitignore を使用して両方のブランチでこのファイルを無視し、手動で編集して、各ブランチで異なるままにすることを考えていました。これが最善の方法ですか、それとももっと良い方法がありますか?

4

2 に答える 2

1

カスケード アプローチを使用します。

  1. デフォルト設定は、共通の " config" ファイルにあります。
  2. 開発の各段階には、独自の構成ファイルがあります。たとえば、config_prodと がありconfig_devます。
  3. 各ステージは異なる (システム) ユーザーとして実行され、そのユーザーに対して環境変数を設定し、PROJ_SETTINGSロードする必要があるファイルをポイントします。

次に、コードはデフォルトを読み取り、環境変数 (存在する場合) が指すリソースから利用可能なもので上書きします。

この変数の設定は、通常の DevOps/自動化スクリプトによって処理されます。いくつかの利点があります。

  1. すべての構成をバージョン管理下に置きます。
  2. ソースを変更することなく、設定を簡単に切り替えることができます。
于 2013-01-06T17:47:16.153 に答える
0

はい、database.yml ファイルを gitignoring することは、私がいくつかの組織で使用したアプローチです。

私たちは通常、database.yml.sample をソース管理に保持しているので、簡単にできます。ユーザーはそれを database.yml にコピーし、必要に応じて変更するだけです。

于 2013-01-06T17:41:29.427 に答える