ひどく今さらですけれど、マイグレーションを勉強し始めました。
運用・保守とかやり始めてから知りましたけど、意外とテーブル定義ってころころ変わるもんなので、覚えておけば後々便利そうです。
(※中には、予備カラムをたくさん持っておいて、必要になったらそれを使う、というやり方もありますが、後の保守のしやすさとか考えると……ごにょごにょ)
そんなマイグレーションデビュー間もない私なのですが、いざ実行してみたら、あれ。
NoMethodErrorとか言って動かない。。
エラーは、こんな具合。
c:/ruby/bin/rake.bat:24: undefined method `require_gem' for main:Object (NoMethodError)
よくわかんなかったので調べてみたら、こんなお言葉が。
これは rubygems の最新(1.0.1)を入れたことにより、rubygems 0.X には存在した require_gem メソッドがrubygems 1.X ではなくなってしまったために発生していました。
引用元:undefined method `require_gem’ for main:Object - 夜の Discovery
と、いうわけで、gemのアップデートをする際は、本当はこうやらないとならなかったらしい。
gem update –system
gem pristine –all
(※WordPressのバグのため、表示上、ハイフンが1つになっていることがあるようですが、ハイフンは2つです)
gem pristine –all
(※WordPressのバグのため、表示上、ハイフンが1つになっていることがあるようですが、ハイフンは2つです)
そういえば、以前、バージョンアップを図ったときは、上のコマンドしか打ってなかったものね。そりゃ道理だ。
これで、rakeコマンドを打っても、きちんと動くようになりました。
ちなみに、下のコマンドを打ってみると、ときたま、こんなエラーが出ます。
ERROR: Cached gem for win32-dir-0.3.0-x86-mswin32 not found, use `gem install` to restore
正直、よくわからないけど、無視しても問題はなさげ。
問題があったら、また考えよう。
Via:

1 Response to “マイグレーションでNoMethodErrorが出るのを直す”