このスニペットを含む友人によるレガシーアプリのかなり古い移行があります:
class MakeChangesToProductionDbToMatchWhatItShouldBe < ActiveRecord::Migration
def self.up
# For some reason ActiveRecord::Base.connection.tables.sort().each blows up
['adjustments',
'accounts',
...## more rows of classes here ###...
'product_types'].each do |table|
t = table.singularize.camelize.constantize.new
if t.attributes.include?('created_at')
change_column( table.to_sym, :created_at, :datetime, :null => false ) rescue puts "#{table} doesnt have created_at"
end
if t.attributes.include?('updated_at')
change_column( table.to_sym, :updated_at, :datetime, :null => false ) rescue puts "#{table} doesnt have updated_at"
end
end
この古い移行は、この長いリストに記載されている 2 つのテーブルを削除するために私が書いた新しい移行と競合しています。これにより、rake db:migrate でデプロイがエラーになります。
この移行に対処して db:migrate を再び機能させるために書く正しい種類の移行または停止アクションは何ですか?