Estou atualizando para o Rails 3.2 e executando o rake db: migrate me dá vários erros do formulário:
AVISO DE DEPRECAÇÃO: Você possui plugins do Rails 2.3 no fornecedor / plugins! O suporte para esses plug-ins será removido no Rails 4.0. Mova-os para fora e agrupe-os no seu Gemfile ou dobre-os no seu aplicativo como lib / myplugin / * e config / initializers / myplugin.rb. Veja as notas de versão para mais informações sobre o assunto: http://weblog.rubyonrails.org/2012/01/04/rails-3-2-0-rc2-has-been-released . (chamado em / app / Rakefile: 7)
O que é desconcertante é que meu vendor/plugins
diretório está vazio - existe outro diretório de plugins ao qual está fazendo referência?
ruby-on-rails
heroku
ruby-on-rails-plugins
fearless_fool
fonte
fonte
Respostas:
Você está usando o Heroku?
A gema rails_12factor também é necessária nos trilhos 4.
Em 2013-08, o heroku sempre injetava plugins em aplicativos rails 3, mesmo aplicativos com as gemas recomendadas. Esse foi um problema com o ruby buildpack e foi corrigido pelo PR 11 , mesclado em 06/08/2013.
fonte
Podes tentar
no seu
production.rb
desde que é apenas barulho.fonte
ActiveSupport::Deprecation.behavior = Proc.new { |msg, stack| $stderr.puts msg unless msg =~ /You have Rails 2.3-style plugins/ }
em config / environment.rb adicione:
antes de inicializar os trilhos, assim:
Da mesma forma, para desativar os avisos nas tarefas de rake, insira a configuração de silenciamento na parte superior do seu Rakefile:
Opcionalmente, você pode agrupar isso em um bloco para silenciar apenas na produção:
fonte
A melhor abordagem que encontrei está documentada aqui . Isso supõe que você procurou e encontrou esta pergunta porque você fazer tem plugins de estilo antigo.
Fui com o Make it não é uma joia em tudo , porque precisava ativar / desativar os plug-ins durante a implantação do capistrano, com base no sabor do aplicativo que estava implantando. Antes de usar o config.plugins para especificar qual plug-in usar. Com essa abordagem, estou usando um "require" no config.before_configuration.
fonte
Basta colocar o seguinte patch de macaco em
/lib/silence_heroku_warnings.rb
e exigi-lo
config/application.rb
logo após a solicitação do Rails:Todas as preterições dos plugins no estilo 2.x devem ser silenciadas. Outras preterições aparecerão.
fonte
Uma maneira mais limpa do que apenas silenciar avisos, eis o que você pode fazer.
Para a injeção do logger, você pode tentar usar a nova gema de Heroku que Jared Beck mencionou em sua resposta acima .
Em vez disso, fizemos o seguinte:
Você pode impedir o Heroku de injetar seus próprios plug-ins se você tiver um diretório com o mesmo nome na sua
vendor/plugins
pasta. A pasta só precisa existir. O Heroku não injeta seu plug-in e, se não houver código, o Rails não se oporá a avisos de descontinuação. Apenas colocamos um arquivo leia-me explicando isso em:O objetivo do plug-in injetado do Heroku para log é ativar o log no estilo Heroku (requer que os logs sejam enviados para STDOUT, não para um arquivo). Para recuperar isso, fizemos o que descrevi nesta resposta . De qualquer maneira, eram necessários ajustes nos comportamentos padrão de Heroku para o Unicorn, então conseguimos dois pássaros em uma pedra.
fonte
.gitkeep
vendor / plugins / rails_log_stdout.gitkeep
é uma convenção para manter um diretório vazio ao usar o git..gitkeep
é uma convenção.A nova maneira de silenciar os avisos de descontinuação é:
no seu
config/environments/production.rb
arquivo.fonte
Parece que Heroku finalmente resolveu isso.
fonte