2011-02-03 12 views
2

私たちはかなりの規模の開発チームを抱え、同じコードライン上にいくつかのプロジェクトを並行して開発しています。時には、開発環境で実行するのに問題ない移行を追加することもありますが、そのプロジェクトのリリーススケジュールのために数ヶ月間prodで実行しないでください。これにより、私たちは特定のマジックナンバーに簡単に移行し、このマジックナンバーの後にすべての移行を逃れることができないため、タイムスタンプではなくRailsの元々の番号付きマイグレーションに固執しました。dev環境とprod環境の移行を適切に管理するにはどうすればよいですか?

私たちは間違っているように感じます。同じ番号の移行を作成する開発者の問題はまだあります。ブランチはトランクから分岐するので、単にブランチにプロジェクトを保存することはできません。

誰かがこのような移行に関する問題を扱う方法やツールがありますか?

+0

個人的には、本番データベースではマイグレーションを実行しません。 SQLは手作業で変更することをお勧めします。しかしこれは良い質問ですので、+1 –

答えて

2

あなたは間違いなく間違ってそれをやっている;)

が効果的に複数の「ターゲット」を管理することが良いVCSが必要です。良い分岐(とマージ)サポートが不可欠なので、私はgitや水銀をお勧めします。

  • タイムスタンプの移行を使用する:重複問題を解決しました。
  • (まだ)本番環境以外のブランチ上で本番環境に移行すべきでない移行を維持します。 生産に「マスター」を導入し、フィーチャーブランチで開発したり、「生産」ブランチを持ちマスターで開発することができます。あなたが本当に必要とするまで、実稼働環境でマイグレーションを実行しないでください。
  • あなたの開発ブランチに 'production'ブランチを頻繁にマージして分岐問題を解決しました。
  • トピックブランチで作業している人が1人だけの場合、開発ブランチをマージして開発履歴を線形に保つ代わりに、 'git rebase'を実行できます。
+0

パーフェクト!ありがとう! – mculp

+0

私は一見プロダクションとdev(異種のタイムスタンプ)の2つのセットの9つのマイグレーションが終わったように見えます。これを避けるために、宝石のインストール、マイグレーションの追加、バージョン管理への追加、プロダクションへの引き込み、バンドルインストールなどの推奨ワークフローはありますか? –

関連する問題