Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

181
Vistas
Usando pg_restore para crear o sobrescribir tablas

Sé que esta es una solicitud extraña, pero por algunas razones extrañas que no puedo evitar, me gustaría poder sincronizar constantemente algunas tablas de una base de datos a otra. Sé que podría escribir la funcionalidad yo mismo en un script, pero imagino que pg_dump y pg_restore aplicarán muchas optimizaciones al proceso que yo mismo no conozco.

Lo que me pregunto es si hay alguna forma de que pg_restore sobrescriba las tablas existentes. Básicamente, en pseudocódigo algo como:

 -- pseudo code begin; drop table to_restore; drop table to_restore2; drop table to_restore3; -- etc restore table to_restore; restore table to_restore2; restore table to_restore3; -- etc commit;

También estoy abierto a formas alternativas de hacer esto si esto no es tan bueno.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Parece que desea la opción -c especificada en la documentación de pg_restore

-C

--limpio

Limpie (elimine) los objetos de la base de datos antes de volver a crearlos. (A menos que se use --if-exists, esto podría generar algunos mensajes de error inofensivos, si algún objeto no estuviera presente en la base de datos de destino).

que puede usar con el indicador -1 para hacer todo en una transacción

-1

--transacción única

Ejecute la restauración como una sola transacción (es decir, envuelva los comandos emitidos en BEGIN/COMMIT). Esto garantiza que todos los comandos se completen correctamente o que no se aplique ningún cambio. Esta opción implica --exit-on-error.

over 4 years ago · Santiago Trujillo Denunciar

0

Este es solo un ejemplo de posible solución:

copie esas tablas desde el primer db a csv. y use una copia extremadamente rápida en la transacción:

 begin; truncate table to_restore; truncate table to_restore2; truncate table to_restore3; set commit_delay to 100000; set synchronous_commit to off; copy to_restore from 'to_restore.csv'; copy to_restore2 from 'to_restore2.csv'; copy to_restore3 from 'to_restore3.csv'; commit;
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda