Actualizar datos de organización con datos de producción en PostgreSQL
-
26-09-2020 - |
Pregunta
Estoy usando PostgreSQL (versión 9.3) en mi servidor y quiero actualizar los datos en mi base de datos de instancia de estadificación con los datos en mi base de datos de instancia de producción. Cada base de datos está controlada por un rol diferente, y quiero mantener sus privilegios separados en la transferencia.
Intenté seguir la documentación y corrió estos comandos con Mis usuarios separados (que tienen acceso a los roles PostgreSQL correspondientes):
staging-user: pg_dump production_db > prod_db_file
production-user: psql --single-transaction staging_db < prod_db_file
pero obtuve un par de errores: must be owner of extension plpgsql
y syntax error at or near
. Además, no estoy seguro de si esto hubiera hecho lo que quería de todos modos. Hay muchas banderas opcionales en los comandos PG_DUMP y PSQL, y no sé cuáles debería usarlo. (He intentado muchas combinaciones de banderas y nada ha funcionado hasta ahora).
NOTA: Cuando probé los comandos anteriores, mi base de datos de estadificación ya existió.
¿Cómo muevo mis datos de producción a mi base de datos de estadificación?
Solución
ACTUALIZACIÓN 30 de octubre de 2015: esta respuesta es más sencilla y más precisa que mi antigua respuesta, que me quité por el bien de la brevedad.Para ver la vieja respuesta, eche un vistazo al historial de edición.
- como usuario de producción:
pg_dump -Fc my_prod_db > prod_dump.db
- DROP y cree una base de datos de estadificación
- como usuario de la estadificación:
pg_restore --no-owner --dbname my_staging_db path/to/prod_dump.db