rake db:migrate - couldn't parse YAML
Colocando um projeto em Rails 3.1 em produção, tive um problema novo, que me custou uma meia hora para resolver:
$ rake db:migrate RAILS_ENV=production
rake aborted!
couldn't parse YAML at line 20 column 16
Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)
Doideira! Nunca tinha visto isso. Numa busca mais ou menos rápida, encontrei este tópico no StackOverFlow, no qual a resposta do vicvega resolveu meu problema. Ele diz para adicionar duas linhas ao config/boot.rb:
require 'yaml'
YAML::ENGINE.yamler= 'syck'
Em desenvolvimento não percebi o problema. Então, fiz assim:
if ENV['RAILS_ENV'] == 'production'
require 'yaml'
YAML::ENGINE.yamler= 'syck'
end
E ficou perfeito. Mas há outras causas prováveis para o problema.
As versões em uso:
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]
Rails 3.1.0.rc4
Rake 0.9.2
Grande post, me ajudou muito aqui em casa aonde estava tendo o mesmo problema em projeto. Só que aqui o erro aparece desde o modo em desenvolvimento.
ResponderExcluirPelo que percebi, no modo desenvolvimento acontece quando tem carácteres especiais no arquivo. Em Produção sempre deu nos testes por sempre ter caráteres especiais na senha. O chato, é que as vezes ocorreu até sem ter senha alguma. Acho que no meu caso foi mesmo a zona de transição entre versões do Rails e outras Gems.
ResponderExcluirQue bom que resolveu para você também.