In: Ruby / Rails| technology
1 5月 2008ひどく今さらですけれど、マイグレーションを勉強し始めました。
運用・保守とかやり始めてから知りましたけど、意外とテーブル定義ってころころ変わるもんなので、覚えておけば後々便利そうです。
(※中には、予備カラムをたくさん持っておいて、必要になったらそれを使う、というやり方もありますが、後の保守のしやすさとか考えると……ごにょごにょ)
そんなマイグレーションデビュー間もない私なのですが、いざ実行してみたら、あれ。
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のアップデートをする際は、本当はこうやらないとならなかったらしい。
そういえば、以前、バージョンアップを図ったときは、上のコマンドしか打ってなかったものね。そりゃ道理だ。
これで、rakeコマンドを打っても、きちんと動くようになりました。
ちなみに、下のコマンドを打ってみると、ときたま、こんなエラーが出ます。
ERROR: Cached gem for win32-dir-0.3.0-x86-mswin32 not found, use `gem install` to restore
正直、よくわからないけど、無視しても問題はなさげ。
問題があったら、また考えよう。
Via:
ゆるーく、ふわーっと、興味のままに。
自分のかたわらに置いておくメモ代わり。
1 Response to マイグレーションでNoMethodErrorが出るのを直す
足の早いrailsのバージョンアップに乗っかる | Katawara.*
5月 1st, 2008 at 12:40:58
[...] ※2008/05/01追記。 これだけだと、gemのupdateはできるけど、rakeがどうも動かなくなります。 正しいgemのアップデートの仕方は、ここをご参考ください。 [...]