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:
- Cedro de Heroku
- Rails 3.2
- Joya ActiceScaffold
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