Railsアプリの古い移行ファイルを削除する 質問する

Railsアプリの古い移行ファイルを削除する 質問する

スキーマが安定している場合、Rails アプリ内の古い移行ファイルを削除 (またはアーカイブ) することは許可されますか?

移行は数多くありますが、Heroku 上のデータベースの移行で時々問題が発生するため、どこかに何らかの問題があるのではないかと疑っています。

ベストアンサー1

データベース スキーマは schema.rb またはスキーマの再生成に使用できる同等の SQL ファイルのいずれかにキャプチャされるため、Rails アプリで古い移行ファイルを保持する必要はありません。

マイグレーションは、データベース スキーマの信頼できるソースではありません。その役割は、db/schema.rb または Active Record がデータベースを調べて生成する SQL ファイルにあります。マイグレーションは編集できるように設計されておらず、データベースの現在の状態を表すだけです。

移行履歴全体を再生してアプリの新しいインスタンスを展開する必要はありません (エラーが発生しやすくなります)。schema.rb または SQL ファイルにある現在のスキーマの説明をデータベースにロードする方がはるかに簡単で高速です。
このファイルはバージョン管理され、ソース管理で保持される必要があります。

schema.rb の自動生成を設定するには、config/application.rb のconfig.active_record.schema_format設定 (:ruby または :sql) を変更します。:ruby を選択した場合、スキーマは db/schema.rb に保存されます。:sql を選択した場合、スキーマはデータベースのネイティブ SQL 形式でダンプされます。

おすすめ記事