run rails migrations learn instal how ruby-on-rails ruby postgresql sqlite3 heroku

ruby on rails - migrations - Rails error 500, "Lo sentimos, pero algo salió mal"



ruby heroku (7)

Después de tres noches sobre este problema y leyendo todas las publicaciones sobre esto, ¡tengo que hacer esta pregunta finalmente!

Quiero implementar la aplicación Rails más simple para Heroku:

rails new test_appli cd test_appli git init git add . git commit -m "initial commit" heroku create git push heroku master

Todo está bien, la aplicación funciona bien en Heroku. Después de eso, crearé una base de datos SQLite3:

rails generate scaffold User name:string email:string rake db:migrate

Todo está bien en la máquina local. Puedo ver localhost:3000/users bien. Entonces quiero poner el DB en Heroku. Primero modifico mi Gemfile:

group :production do gem ''pg'' end group :development, :test do gem ''sqlite3'' end

Luego le envío todo a Heroku:

git init git add . git commit -m "with Database" git push heroku master heroku rake db:migrate

Entonces no hay errores en el lote, todo está bien, se envía el DB, pero la página heroku.com/users da el error

Rails 500, "Lo sentimos, pero algo salió mal"

No sé más qué hacer. ¿Me puedes ayudar?


Sospecho que estás intentando implementar una aplicación de Rails 3.1 en la pila de bambú (heroku crea por defecto la pila de bambú 1.9.2 y no ejecuta Rails 3.1 de fábrica). La pila de Cedar se adapta mucho mejor a los sitios de Rails 3.1.

tratar

heroku create --stack cedar

cuando crees tu aplicación en Heroku y la repuntes. También tenga en cuenta que su comando de rake en Heroku se convertirá

heroku run rake db:migrate


No hagas el git init en el segundo conjunto de comandos; solo necesitas inicializar tu Git repo una vez.

Aparte de eso, esto se ve bien, ¿ve algún error en alguna parte?


¿Por qué usaría la gema pg en su grupo de producción, pero la gema sqlite3 en su grupo de desarrollo? Me parece que su problema probablemente se deba al hecho de que está desarrollando una base de datos diferente y luego la está utilizando en el entorno de producción. Si yo fuera tú, me quedaría con uno, lo que facilitaría la depuración.

Si realmente quiere / necesita que la aplicación se ejecute lo antes posible, simplemente ejecútelo en producción con sqlite ... Gemfile:

gem ''rails'' gem ''sqlite3''

Además, una forma rápida de descubrir cuál es el error sería ejecutar heroku logs desde la consola de Unix.


¿Qué versión de Rails? ¿Puedes intentar crear la aplicación que se ejecuta en la pila Cedar?

heroku create myapp --stack cedar

Dado que la aplicación se está ejecutando en cedro, debe modificar los comandos un poco, por ejemplo:

heroku run rake db:migrate

En cualquier caso, realmente necesita verificar sus registros, ya que su problema podría no estar relacionado con la base de datos, sino con los activos relacionados.


¿Tiene agregada la instancia de base de datos de 5 mb heroku compartida? Cuando creas tu aplicación heroku (en cedro) no necesariamente crea la base de datos automáticamente.

airlift:projects $ heroku create --stack cedar testapp9 Creating testapp9... done, stack is cedar http://testapp9.herokuapp.com/ | [email protected]:testapp9.git airlift:projects $ heroku addons --app testapp9 logging:basic releases:basic

Cuando ves tu configuración heroku, no obtienes nada:

configuración heroku

airlift:projects $ heroku config --app testapp9 airlift:projects $

Para agregar una base de datos:

Complementos heroku: agregar base de datos compartida: 5mb

airlift:projects $ heroku addons:add shared-database:5mb --app testapp9 -----> Adding shared-database:5mb to testapp9... done, v3 (free) airlift:projects $ heroku config No app specified. Run this command from an app folder or specify which app to use with --app <app name> airlift:projects $ heroku config --app testapp9 DATABASE_URL => postgres://blah:[email protected]/blah SHARED_DATABASE_URL => postgres://blah:[email protected]/blah airlift:projects $

Entonces deberías poder migrar tu db.


Hacer:

heroku run rake db: schema: carga

Tuve el mismo problema. Funciona para mí después de git push heroku master


Hola, @redronin, gracias por ayudarme a encontrar la manera de conectarme a mi base de datos postgres en Heroku, sin embargo, como novato en Heroku y postgresql, tuve que aplicar ingeniería inversa a lo que era "bla". Así que creo que lo dividiría para ayudar a los demás a medida que me ayudas.

postgres: // [usuario]: [contraseña] @ [servername] .compute-1.amazonaws.com / [database]