これがバグなのか、それとも実際に migration.rb ファイルが削除されたのかはわかりません。generate を使用して、次の移行を作成しました。
$ rails generate migration add_delta_to_submissions
invoke active_record
create db/migrate/20111020175649_add_delta_to_submissions.rb
次に、列を含めるのを怠ったことに気付いたので、コンソールで上矢印を使用して、生成を破棄で上書きしました。
$ rails destroy migration add_delta_to_submissions
invoke active_record
remove db/migrate/20111020175649_add_delta_to_submissions.rb
ここまでは問題ありませんでしたが、今度は必要な列で移行を実行します。ここで問題が発生します-上向き矢印をもう一度使用しましたが、1回だけ-列情報を追加しました:
$ rails destroy migration add_delta_to_submissions delta:integer
invoke active_record
remove migration.rb
GENERATE や DESTROY のように不安定なコマンドに上向き矢印を使用するべきではないことはわかっていますが (教訓が得られました!)、そのコマンドは migration.rb ファイルを削除したことを示して戻ってきました。migration.rb ファイルがあることさえ知りませんでした。特に、簡単に削除できるファイルはありませんでした。
念のため、migration という単語の末尾に文字 x を追加して、コマンド コンソールをだますことにしました。すると、次のメッセージが表示されました。
$ rails destroy migrationx add_delta_to_submissions delta:integer
Could not find generator migrationx.
したがって、rails destroy コマンドにバグがある可能性があると思います。add_delta_to_submissions.rb ファイルがなくなったことに気付くと、それを切り取り、.rb の migration という単語 (または DESTROY の後の任意の単語) に追加しました。ちょっと危なそうです……。
それに関係なく、migration.rbファイルが削除されたので、RAILS環境(Rails 3.1、Ruby 1.8.7)が何らかの形で侵害されたかどうか知りたいです。もしそうなら - その状況を修正するための私のオプションは何ですか?
よろしくお願いします...