

とあるテーブルのカラム型を「text」とするところ間違えて「body」としてしまいました。

時すでに遅しで、そのまま気づかずに、その後もモデルを作ったりしてしまいました。

ここで、型を変更もしくは、一旦削除したいのですが、エラーがでます。

状況：

[code]

     up     20160623115522  Rename comment column to best answer
     up     20160623120025  Rename note column to best answer
     up     20160627113038  Add body to best answer 
     up     20160705091749  Add thx to best answer #間違えてる箇所
     up     20160710104044  Add name to best answer
    
[/code]

対処：rails generate migration RemoveThxFromBestAnswerとしたりrails g migration
change_datatype_thx_of_best_answerとして、 rake db:migrateしたのですが、

[code]

     == 20160712071004 RemoveThxFromBestAnswer: migrating ==========================
     -- remove_column(:best_answers, :thx, :body)
     rake aborted!
     StandardError: An error has occurred, this and all later migrations canceled:
    
     undefined method `to_sym' for nil:NilClass
     Did you mean?  to_s
    
     #間違えた時に作ったmigrateファイル
     20160705091749  Add thx to best answer
     class AddThxToBestAnswer < ActiveRecord::Migration
       def change
         add_column :best_answers, :thx, :body
       end
     end
    
     #適用させようと失敗するmigrateファイル
     class RemoveThxFromBestAnswer < ActiveRecord::Migration
       def change
         remove_column :best_answers, :thx, :body
       end
     end
    
[/code]

と、でて受け付けてもらえません。  
どうすればいいでしょうか？ご教授お願いします。


CC BY-SA 3.0
2016-07-12T07:57:55.243
27561
2019-01-23T15:01:15.253
2016-07-12T09:10:21.710
15690
15690
question
ruby-on-rails
Railsでデータタイプを間違えて作業を進めてしまった場合


開発の途中であって、面倒をみるべき運用中の DB がないのであるならば、ミスった migration ファイルを直接書き換えて、 `rake
db:migrate:reset` するのが一番早いです。 今現在の migration ファイル(たち) でもって、 1
からデータベースを作りなおします。


CC BY-SA 4.0
2018-07-08T09:45:44.807
45420
2018-07-08T09:45:44.807
754
27561
answer