2016-05-03 2 views
1

私はSyamからPsychへのyamlerの変更を許可するデータ移行の作成に忙しいです。このために私たちのデータベースのいくつかの列を移行する必要があります。私は次の奇妙なエッジケースにヒットしましたSyck.dump空のハッシュがIO例外をスローする

(rdb:1) Syck.dump({}) 
    *** NoMethodError Exception: undefined method `[]' for #<StringIO:0x007f9142eb7438> 
/Users/donovanthomson/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/psych/deprecated.rb:21:in `quick_emit' 
/Users/donovanthomson/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/syck/rubytypes.rb:16:in `to_yaml' 
/Users/donovanthomson/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/syck/rubytypes.rb:451:in `to_yaml' 
/Users/donovanthomson/.rvm/rubies/ruby-1.9.3-p545/lib/ruby/1.9.1/syck.rb:119:in `dump' 

明らかに空のハッシュはSyckを使ってダンプできませんか?

+0

これは奇妙です。スタックトレース全体を含めるように質問を編集できますか? –

+0

@Jordan、どんな提案も大歓迎です! –

+0

PsychとSyckを同時にロードしましたか?私はそれがあなたの問題かもしれないと思う。 'syck/ruby​​types.rb'は' Syck.quick_emit'の代わりに 'YAML.quick_emit'を呼び出しているようです。これはSyckの代わりにPsychによって処理されます。私は現時点では携帯電話ですので、私はそれをさらに絞り込むことはできません。 –

答えて

0

私はかなり愚かなことをしていました。私は移行を実行する前にSyckの依存関係をローカルに削除しました。

関連する問題