私はレールアプリの開始以来ずっと多くの移行を作成しました。それらのうちのいくつかは、テスト目的のための場所です。私は今、全く役に立たない多くの移行をしています(例えば、移行でテーブルを作成して次の移行で削除するなど)。レールでの過去の移動を削除する
db:migrateを実行すると、schema.rbが更新されるため、すべての移行を削除してschema.rbの実際のコンテンツから開始できますか?
私はレールアプリの開始以来ずっと多くの移行を作成しました。それらのうちのいくつかは、テスト目的のための場所です。私は今、全く役に立たない多くの移行をしています(例えば、移行でテーブルを作成して次の移行で削除するなど)。レールでの過去の移動を削除する
db:migrateを実行すると、schema.rbが更新されるため、すべての移行を削除してschema.rbの実際のコンテンツから開始できますか?
はい、以前の移行を削除できます(おそらくそうする必要があります)。モデルコードがスキーマの新しいバージョンに依存するため、古い移行が機能しなくなる可能性があります。
だから、すべての手段によって、マイグレーションを削除(あなたは右、ソース管理下にそれらを持っている?)、そしてあなたがする必要がある場合は、新しいデータベースを初期化するために
rake db:schema:load
を使用しています。
UPDATE:Railsのガイドになりましたこれについて言うべき類似した何かを持っている:http://guides.rubyonrails.org/active_record_migrations.html#schema-dumping-and-you
これを行うには良い方法は、次の操作を実行することです...
をあなたのプロジェクトにマイルストーンに到達すると、そのバージョンのDBの下に移行したくないと確信している場合は、 多くのマイグレーションファイルを1つのマイグレーションファイルに置き換えることができます。このマイグレーションファイルをバンドルアップする新しい「初期」マイグレーションファイルとして使用できますその日までに完了したすべて。
その後:プロジェクトで引き続きマイグレーションを使用してください。
schema.rbファイルを手動で編集しないでください。災害復旧のようなものでない限り、db/schema.rbファイルをロードしないでください。
バージョンコントロールにチェックインされているファイルが最新バージョンであるか、または正しいバージョンであることを100%保証するものではありません。
上下に移行して、大量の移行を単一の移行ファイルにまとめてバンドルするほうがはるかに安全です。
schema.rbファイルを手動で読み込むと、移行が提供するセーフティネットを完全に迂回します。それは良い考えではありません。
「rake db:schema:load」 –
を使用してすべての移行ファイルを削除できますか? – Luc