es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo emparejar todas las tablas excepto una utilizando la bandera –exclude-table-data en pg_dump?

Estoy utilizando psql 13.4 para hacer un pg_dump de una base de datos. Solo necesito el esquema (sin datos) de todas las tablas excepto una tabla de referencia enumerada, para la cual necesito los datos. Veo que pg_dump tiene una bandera –exclude-table-data que admite patrones regex. Pero no tiene una bandera –include-table-data.

Entonces, para excluir los datos de las tablas excepto la tabla de referencia única, pensé en usar una regex con una apariencia negativa. Por ejemplo, esta: ^(?!.*(nombre_de_la_tabla_de_referencia)). Sin embargo, esto no parece funcionar debido a las limitaciones de caracteres especiales de psql (por ejemplo, *, ?, y .) descritas aquí. He intentado hacer las sustituciones que sugiere, pero no funciona.

¿Es posible hacer lo que estoy intentando?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, es posible excluir datos de tablas para todas las tablas excepto la tabla de referencia única utilizando pg_dump y un patrón de expresiones regulares. Sin embargo, debido a las limitaciones de psql en cuanto a caracteres especiales como *, ? y ., es posible que necesite realizar ciertas sustituciones según lo sugiere la documentación para los patrones en psql. Puede intentar utilizar un patrón de expresión regular diferente que no contenga estos caracteres especiales o intentar realizar las sustituciones necesarias en el patrón existente para que funcione.

Comments are closed.