Permiso denegado para crear "pg_catalog.tablename" durante pg_dump dirigido a otra máquina


11

Estoy tratando de volcar algunas tablas de un 9.5 beta 2 a un servidor 9.4.4. La forma del comando que estoy usando es bastante estándar:

pg_dump -t table dbname | psql -h hostname -d dbname

Estoy usando el usuario de Postgres, lo que me doy cuenta de que probablemente no sea lo ideal, pero como estos son cuadros de procesamiento de datos de desarrollo que solo yo uso y es relevante para el error que sigue. Inicialmente recibí el error

ERROR: parámetro de configuración no reconocido "fila_seguridad"

lo cual se espera ya que esta característica es nueva en 9.5, y, sí, me doy cuenta de que no es aconsejable pg_dump entre diferentes versiones de Postgres, pero, lamentablemente, es inevitable, dado que he encontrado un error muy oscuro y necesito mover un gran cantidad de datos estáticos una vez.

Entonces, usando este horrible truco para eliminar el error row_security, y activando stop en el primer error:

pg_dump -t tablemame dbname |sed 's/SET row_security = off;//'|
psql -v ON_ERROR_STOP=1 -h hostname -d dbname

Ahora obtengo:

ERROR: permiso denegado para crear "pg_catalog.tablename" DETALLE: las modificaciones del catálogo del sistema están actualmente prohibidas

Si bien puede ser indeseable usar el rol / usuario de Postgres, entiendo que no debería haber problemas de permisos de esta naturaleza. Estoy abierto a cualquier sugerencia teniendo en cuenta que esta es una operación única y que estos son cuadros de desarrollo de procesamiento de datos que no están conectados a ningún servicio en vivo, por lo que se prefiere la conveniencia a las políticas ideales de acceso a datos corporativos. Dicho esto, sería bueno entender cómo hacer esto correctamente y evitarlo en el futuro.

Respuestas:


13

Esto se debe a un mensaje de error algo oscuro que ocurre cuando el esquema desde el que está volcando con pg_dump no existe en la base de datos / máquina de destino. Dejaré esta pregunta, con la esperanza de que pueda ayudar a alguien más.


También me pasó a mí, por suerte encontré esto. Simplemente creé manualmente el esquema 'público' y funcionó.
Robert Mikes

@RobertMikes. Encantado de ayudar. Es un error algo oscuro.
John Powell el

Gracias, ¡afortunadamente encontré esto antes de involucrarme demasiado en él!
James Fry

+1. ¡Este problema también me hizo tropezar!
Jay Cummins
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.