環境
ruby 1.9.3p194 (2012-04-20 リビジョン 35410) [x86_64-darwin10.8.0]; レール 3.2.6; OS X 10.6.8
問題
- データベースをリセットした後でも (rake db:reset)、移行によって誤ったテーブル、フィールド、スキーマが生成され、以前の移行仕様では廃止されたテーブル、フィールド、制限、インデックスなどを特徴としています。
バックグラウンド
2 つの OSX 10.6.8 システム間で github 共同プロジェクトを行ったり来たりしました。以前の時点で、意図したテーブル定義を単一の初期移行に統合することにより、移行を最初からやり直しました (以前の多くの移行仕様の実質的な混乱と面倒な処理を排除しました)。
何ヶ月もの間、改訂された移行により、テーブルとスキーマが忠実に生成されました。
ポータブル システムからパブリック リポジトリを同期した後、プロジェクトを主要な開発システムにプルした後、さらに移行を行うと、多くのテーブルとフィールドが保持されます。これらは、実際には既存の移行のいずれにも定義されておらず、同じ移行によって生成されたものでもありません。他の協力者の開発環境。言い換えれば、多くの廃止された/非推奨のフィールドとテーブルは、改訂された移行から削除されるずっと前に仕様から何らかの形で存続しています。したがって、db:migrate は、rake db:reset を実行した後でも、この 1 つのシステムで誤ったテーブルとスキーマを生成します。
おそらく、以前の処方箋は開発環境のどこかに保持されており、以前の、もはや存在しない定義を削除、修正、または上書きする必要がありますが、それでも望ましくないテーブルやフィールドに蓄積されています。
この問題を是正するにあたり、既存の作業を取り消さざるを得ないことは非常に望ましくありません。
質問
プロジェクトで保持した移行仕様に忠実な移行、テーブル、およびスキーマを再生成するための適切かつ効果的な方法は何ですか?