Como posso usar o console rails em Heroku? Carris 5.1 e postgresql

Tenho seguido um tutorial para uma aplicação de Carris. O tutorial é baseado em Rails 5 e eu estou usando Rails 5.1.2. Tudo funciona bem localmente e empurrado para heroku sem problemas. No entanto, quando fui criar um utilizador administrativo na base de dados de produção, executando:

$ heroku run rails c

devolve o seguinte erro:

/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_ support / dependencies.rb: 292: em require': cannot load such file -- rack/handler/c (LoadError) from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:inBloco in require' de /app/vendor/bundle/ruby/2.4. 0/gems/activesupport-5.1.3/lib/active_ support / dependencies.rb: 258: /app/vendedor/pacote/ruby/2.4.0/gems/rack-2.0.3/lib/rack / handler.rb: 74: in try_require' from /app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.3/lib/rack/handler.rb:16:in sai de /app/vendedor/pacote/ruby/2.4.0/gems/rack-2.0.3/lib/rack / servidor.rb: 301: in server' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:68:in print_boot_information ' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server / server_ Command.rb: 38: in start' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:131:in bloco em execução ' de /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server / server_ Command.rb: 126: em tap' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:126:in executar ' de /app/vendedor/pacote/ruby/2.4.0/gems/thor-0.20.0/lib/thor / comando.rb: 27: in run' from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in invoke_command ' from /app/vendedor/pacote/ruby/2.4.0/gems/thor-0.20.0/lib / thor.rb: 387: in dispatch' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/command/base.rb:63:in executar ' de /app/vendedor/pacote/ruby/2.4.0/gems/railties-5.1.3/lib/rails / command.rb: 44: in invoke' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands.rb:16:in ' de bin / rails: 9: in require' from bin/rails:9:in "

Para contornar isto, posso ... run:

$ heroku run bash
$ rails c
E isto permite-me actualizar a base de dados de produção. Enquanto isto funciona e dá-me o que preciso. Quero saber porque é que o comando original não funciona. Procurei por toda a parte por uma resposta e não consigo encontrar nada que se aplique a mim. Estou tentando melhorar minhas habilidades de desenvolvimento e gostaria de entender por que o problema original não vai funcionar.

Posso adicionar ficheiros que alguém precise de ver, mas nem sei quais são relevantes para isto. problema.

Author: Sebastian Palma, 2017-09-24

1 answers

O meu entendimento é que o comando {[[0]} é fornecido pela Interface da linha de comandos Heroku (CLI). o CLI não sabe como lidar com o comandorails c . No entanto, ao executar heroku run bash irá rodar um novo dyno e oferece acesso a uma linha de comandos Unix, onde poderá executar comandos (isto é, Linhas c), tal como o seu terminal local. Para mais informações, ver: https://devcenter.heroku.com/articles/how-heroku-works.

Editado para corrigir o erro: o CLI sabe como lidar com o rails c comando

 0
Author: lgants, 2017-09-24 16:51:49