database - example - heroku postgres pricing
PGError: ERROR: permiso denegado por relación(cuando se usa Heroku) (6)
ACTUALIZACIÓN: la respuesta de Ashton lo clava en esta situación, que es muy específica de Heroku. Si ha encontrado esto en una búsqueda de mensajes de error o problemas de PostgreSQL, pero no está utilizando Heroku, busque otras preguntas con más probabilidades de aplicar a su situación.
Supongo que la identificación de usuario de PostgreSQL con la que se está conectando no es el propietario de sus tablas, y no ha emitido ninguna declaración GRANT
explícita para darle acceso. Sin ver exactamente lo que ejecutó cuando migró es difícil decir más, y Heroku oculta muchos de los internos de todos modos.
Veamos cuál es la situación actual. Intente conectarse con psql
y ejecutar:
/dp the_problem_table
y muestre los permisos reportados. Mostrar también el resultado de:
SHOW current_user;
ejecutar desde psql
y cuando se ejecuta como una consulta SQL desde el interior de su aplicación.
Edite su pregunta para agregar esa información y el texto completo y exacto del mensaje de error que recibe .
Recientemente realicé el proceso de migración de la base de datos como se describe aquí:
https://devcenter.heroku.com/articles/migrating-from-shared-database-to-heroku-postgres
Ahora veo una serie de errores en los registros como este:
PGError: ERROR: permiso denegado para la relación
¿Alguna idea sobre lo que debería hacer para solucionarlo?
Después de eliminar las filas adicionales, no recibirá de inmediato los privilegios de inserción. En ese caso, elimine las filas adicionales y simplemente ejecute heroku pg:info
después de eso. Esto actualizará los privilegios de su base de datos y obtendrá el acceso en pocos minutos. No es necesario clonar el DB existente en uno nuevo y establecer el nuevo como el DB de su aplicación.
$ heroku pg:info
=== HEROKU_POSTGRESQL_BRONZE_URL, DATABASE_URL
Plan: Hobby-dev
Status: Available
Connections: 3/20
PG Version: 9.3.6
Created: 2014-03-01 13:47 UTC
Data Size: 1.25 GB
Tables: 4
Rows: 2098/10000 (Write access revoked) - refreshing
Fork/Follow: Unsupported
Rollback: Unsupported
Add-on: grinning-busily-5587
Estaba en una situación en la que excedía el límite de recuento de filas.
Esta respuesta explica cómo enumerar el número de filas en cada tabla: http://.com/questions/12701711/heroku-row-count-incorrect
Muy valioso para saber
Puede acceder a la consola psql a través de la terminal, ¡la configuración de conexión aparece en el panel de control heroku de su aplicación!
Pasos basados en la respuesta de Ashton para actualizar de Dev (límite de 10k filas) a Basic (límite de 10M filas)
comprobar que las filas de db superaron el límite
heroku pg:info
deshabilitar la aplicación y los trabajadores para asegurarse de que no haya cambios de db durante la actualización de db
heroku maintenance:on
heroku ps:scale worker=0
si no tienes pgbackups
heroku addons:add pgbackups
copia de seguridad de la base de datos y obtener la id
heroku pgbackups:capture
agregar db con interfaz web
- inicie sesión en https://addons.heroku.com
- buscar "Heroku Postgres"
- seleccione el plan y la aplicación
- agregarlo
ver configuración heroku, debería ver nueva URL db
heroku config --remote heroku
restaurar la copia de seguridad a la nueva base de datos
heroku pgbackups:restore NEW_DB_URL BACKUP_ID
cambiar DATABASE_URL
heroku pg:promote NEW_DB_URL
habilitar la aplicación y los trabajadores
heroku maintenance:off
heroku ps:scale worker=1
Tuve un problema similar en mi aplicación Redmine:
PG::InsufficientPrivilege: ERROR: permission denied for relation settings
: SELECT "settings".* FROM "settings" WHERE "settings"."name" = ''plugin_redmine_wktime'' LIMIT 1
Mis pasos fueron:
- Hice una copia de seguridad de la antigua aplicación y base de datos de Redmine.
- Implementé una nueva versión de Redmine: funcionó perfectamente
- Restauré el antiguo Redmine como servidor de desarrollo y recibí un error cuando intenté acceder a la página web principal.
La causa de mi problema era simplemente un nombre de usuario incorrecto en la configuración / base de datos de Redmine antigua.
Tuve un problema similar, pero la causa principal fue que mi aplicación apuntaba a la antigua base de datos de desarrollo que había excedido su límite de 10.000 filas.
Aunque creé una nueva base de datos básica y realicé una copia de seguridad de todo, la aplicación todavía apuntaba al antiguo DB de desarrollo.
heroku pg: información
Compruebe para ver las filas: 10300/10000 (entonces usted tiene un problema)
Necesitaras
1) Crear una base de datos nueva con más filas (básica o de "Producción" -> Heroku parece forzar una actualización para hacer más dinero errrrrr)
2) haga una copia de seguridad de la base de datos anterior usando pgbackups: heroku pgbackups:capture SMALL_DB_NAME
3) restaurar la copia de seguridad a la nueva base de datos: heroku pgbackups:restore BIG_DB_NAME BACKUP_ID
(ver enlaces a continuación para más detalles)
4) PROMOCIONE la nueva base de datos a la primaria para la aplicación: heroku pg:promote BIG_DB_NAME
siempre puede utilizar:
mantenimiento de heroku: activado (para desactivar la aplicación durante la actualización)
mantenimiento heroku: apagado
heroku pg: info (para verificar el estado)
Si este es el problema, puede consultar: https://devcenter.heroku.com/articles/heroku-postgres-starter-tier https://devcenter.heroku.com/articles/migrating-from-shared-database-to-heroku-postgres