run rails postgres portable migrations instal ruby-on-rails postgresql heroku rails-activerecord

ruby-on-rails - rails - ruby heroku



Error de Heroku Postgres: PGError: ERROR: la relaciĆ³n "organizaciones" no existe(ActiveRecord:: StatementInvalid) (13)

¿Estás usando un dispositivo? Tuve este problema exacto al actualizar a 2.0. Debe cambiar manualmente el archivo de migración.

https://github.com/plataformatec/devise/wiki/How-To:-Upgrade-to-Devise-2.0-migration-schema-style

Tengo un problema al implementar mi aplicación Rails en Heroku, donde se produce este error cuando intento acceder a la aplicación:

PGError: ERROR: la relación "organizaciones" no existe (ActiveRecord :: StatementInvalid)

SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull FROM pg_attribute a LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum WHERE a.attrelid = ''"organizations"''::regclass AND a.attnum > 0 AND NOT a.attisdropped ORDER BY a.attnum

¿Alguien tiene ideas? Esta es la primera vez para mí, especialmente porque he estado trabajando con Heroku durante un año en otras aplicaciones, y no he visto nada como esto. Por supuesto, todo funciona en SQLite local.


Aparentemente, al eliminar mi aplicación completa y volver a implementarla desde cero, se solucionó. No tengo idea de cuál fue el problema.


De acuerdo con mi experiencia (Rails 3.1, pila Sedar) después de ejecutar pg:reset y db:migrate heroku restart es posible que tengas que ejecutar heroku restart .


Después de horas de revisar la respuesta, me di cuenta de que cuando especificas

rails new MYAPP -database POSTGRESQL

cambia el archivo .gitignore, ignorando todo el /db/ directory , por lo que mi base de datos nunca fue empujada a heroku. Quítelo con cuidado, o al menos no tenga su nombre de usuario y contraseña allí donde empuja hacia arriba.


En mi caso, los síntomas fueron los mismos, pero la causa raíz y el remedio resultaron algo diferentes. Pasé horas en esto. ¡Espero que esta publicación le ahorre a alguien esas horas! Estoy usando:

Todo funciona bien localmente en SQLite, pero obtiene el mismo error de PG en Heroku. Resulta que ActiveScaffold impide de alguna manera que Heroku push ejecute tareas de rake debido a un error similar al anterior. Entonces obtienes un caché 22 donde obtienes el mismo error si tratas de ejecutar heroku rake db: migrate o similar.

Ahora la solución:

  • Comente los bloques de código similares a los siguientes de todos los controladores que usan "active_scaffold":

    active_scaffold :<model_name> do |conf| end

  • Comprometerse, empujar a Heroku
  • heroku run rake db:migrate
  • Verifique que todo esté bien ejecutando heroku run rails console y luego diga creando un modelo y guardándolo.
  • Ahora invierta los cambios (es decir, vuelva a traer el bloque active_scaffold anterior)
  • cometer, empujar a Heroku
  • usted está en el negocio!

En mi caso, también tuve que destruir y volver a crear mi aplicación. Había ejecutado un rake db: migrar con un archivo de migración no confirmado y, por la razón que sea, el restablecimiento de pg: no funcionaba.


Mantengo mi configuración local lo más cercana posible a la producción, incluido el uso de una base de datos postgresql, así que tuve este problema en mi máquina local. No puedo eliminar mi base de datos de producción de todos modos. Resultó que mi problema solo estaba en prueba, así que usé: rake db: test: prepárese para solucionarlo.


Mi versión heroku:

heroku --version #=> heroku-gem/2.29.0 (x86_64-linux) ruby/1.9.3

Para arreglarlo solo abre tu terminal y ejecuta:

heroku pg:reset DATABASE --confirm YOUR_APP_NAME heroku run rake db:setup heroku restart heroku open


Puede haber muchas razones para este error. Para mi aplicación, sin embargo, el problema era que no había cerrado sesión en la aplicación antes de ejecutar la migración (?). Así que yendo a esta ruta: http://name_of_my_app.herokuapp.com/logout solucionó el problema.


Tuve el mismo problema hasta que me di cuenta de que tenía que hacer:

heroku rake db:migrate

:)


Tuve un problema similar y ejecuté heroku run rake db:reset y heroku run rake db:migrate para solucionar el problema. Supongo que simplemente no había ejecutado las migraciones adecuadas para solucionar el problema.


Yo tuve el mismo problema. Para resolverlo, restablecer la base de datos es más fácil.

  • heroku rake db: reset (''heroku run rake db: reset'' si estás en cedro)
  • heroku rake db: migrate (''heroku run rake db: migrate'' si estás en cedro)

Luego, la migración se realizó con éxito para mi caso :)

Si bien esta es una buena solución en este contexto, no lo haga en producción. Eliminará todos los registros de su base de datos


rake db:drop rake db:create rake db:migrate