Open BeaGaete opened 6 years ago
El error que publicaste está incompleto. ¿Puedes agregar más líneas del log?
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
Podrías mostrar los logs donde viste que no está reconociendo la tabla?
Este es el error:
¿Es el mismo problema que en el issue https://github.com/IIC2143-2018-1/project/issues/58 o es nuevo?
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 :(
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:
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.
Muchas gracias, me quedó más claro
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!