IIC2143-2018-1 / project

Repositorio para organizar el proyecto del curso
13 stars 2 forks source link

ERROR en HEROKU #70

Open BeaGaete opened 6 years ago

BeaGaete commented 6 years ago

HOla!! cuando trato de hacer el deploy no me resulta y en los logs de heroku me sale esto: ... active_record/connection_adapters/postgresql/database_statements.rb:61:in `async_exec', Qué significa y como puedo solucionarlo? De antemano gracias!

andresfdezc commented 6 years ago

El error que publicaste está incompleto. ¿Puedes agregar más líneas del log?

BeaGaete commented 6 years ago

Gracias por contestar pronto. No se que habrá pasado pero ahora no me sale ese error :). Lo que si tengo malo es que heroku no me está reconociendo la tabla intermedia para la suscripción entre users y foros (esa que no es modelo, solo una tabla) yen en localhost funciona perfect. Comprobé que no hay migraciones pendientes. No se que estará pasando

haroldmuller commented 6 years ago

Podrías mostrar los logs donde viste que no está reconociendo la tabla?

BeaGaete commented 6 years ago

Este es el error: image

rasaffie commented 6 years ago

¿Es el mismo problema que en el issue https://github.com/IIC2143-2018-1/project/issues/58 o es nuevo?

BeaGaete commented 6 years ago

Es el mismo! Como dije antes, no me sale que tengo migraciones pendientes y la tabla está en schema, no se que más intentar :(

rasaffie commented 6 years ago

El problema es que modificaste el código de una migración luego de que fue ejecutada en la base de datos de producción. El archivo de la migración fue agregado en este commit, luego asumo que se ejecutó en producción y posteriormente se modificó en este commit.

Por como están diseñadas las migraciones cada uno de estos archivos tiene un timestamp asociado, el cual queda registrado en el archivo schema.rb una vez que se ejecuta. De esta forma no se vuelven a ejecutar migraciones que ya fueron ejecutadas (junto con una tabla reservada por RoR en la base de datos). Puedes leer más sobre este tema en este enlace.

Por este motivo ese último cambio no fue ejecutado en la base de datos de producción (y por ende hay una inconsistencia entre el código y la base de datos). En ambiente de desarrollo no tienes este problema porque debes haber botado y vuelto a crear la base de datos, por lo que se vuelven a ejecutar todas las migraciones.

Solucionar esta inconsistencia sin botar la base de datos puede ser más complejo que simplemente volver a crear una aplicación en Heroku. Tus opciones son:

rasaffie commented 6 years ago

También en el primer commit, el archivo schema.rb tiene cambios que no se reflejan en las migraciones.

Esto se puede deber a que se crearon migraciones, se ejecutaron y luego se borraron los archivos antes de agregarlos al commit.

Este escenario genera más inconsistencias entre el código y la base de datos. La solución de este caso no está dentro de las opciones que listé antes, pero puede ser que aún con esta inconsistencia tu aplicación se logre ejecutar.

BeaGaete commented 6 years ago

Muchas gracias, me quedó más claro