LoginSignup
7
6

More than 5 years have passed since last update.

Railsのマイグレーションファイルを整理する

Posted at

継続して開発していくプロジェクトでは、データベースの変更も繰り返されることとなります。そうすれば、マイグレーションファイルも多量に存在することとなってしまいます。

マイグレーションは便利、だけど

マイグレーションを使えば、データベース構造もソースコードと一貫して管理できるようになるので、反映忘れやミスなどが軽減できて便利です。

ただ、Railsの標準ではマイグレーションファイルをdb/migrate/の直下に作ることとなっていて、長期間が過ぎたプロジェクトではマイグレーションファイルだけで数百個、ということになってしまって、エディタのリストで見たときもえんえん過去のマイグレーションが並んでいて、目的のものが見つからない、なんてことになってしまいます。

意外とデフォルト機能で対応できた

だからといって削除するわけにも行かないし、どうしたものだろうと悩んでいたのですが、ActiveRecordのソースを見たことで、悩みはあっけなく解決しました(4.2のコード)。

activerecord/lib/active_record/migration.rb
      def migration_files(paths)
        Dir[*paths.flat_map { |path| "#{path}/**/[0-9]*_*.rb" }]
      end

ということで、パスに/**/が入っている、つまり指定フォルダ以下ならどこに置いてもいいのでした。速攻でdb/migrate/以下にサブフォルダを作って、分類格納する形に切り替えたことで、問題は一件落着となりました。

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6