Estoy volcando mi base de datos Postgres usando pg_dump (en formato de texto plano) y luego la restauro simplemente usando psql (con el-f opción).
Lo que plantea la pregunta: ¿me estoy perdiendo algo al no usar pg_restore que parece una herramienta de restauración especializada (en comparación con la genéricapsql )?
Puedo controlar opciones como deshabilitar los desencadenantes y demás mediante el uso de pg_dumpparámetros. ¿Para qué se pg_restoreusa entonces ? formatos de volcado de texto no plano?
postgresql
postgresql-9.1
Marcus Junius Brutus
fuente
fuente

Respuestas:
Si creó un volcado de formato SQL, todo lo que puede usar es
psql.Si creó un volcado de formato personalizado (
pg_dump -Fc) o de formato de directorio (pg_dump -Fd), puede y debe usarpg_restore.Los volcados personalizados y de formato de directorio ofrecen muchas ventajas sobre los volcados de secuencias de comandos SQL simples, y los uso exclusivamente. Puede restaurar selectivamente solo algunas tablas / esquemas, puede elegir si incluir solo esquemas, solo datos o ambos en el momento de la restauración, etc. Muchas de las opciones que tiene que especificar en el
pg_dumpmomento con volcados de formato SQL se pueden elegir en restaurar- tiempo si usa un volcado de formato personalizado ypg_restore.Si no fuera por la compatibilidad con versiones anteriores, estoy seguro de que el formato predeterminado
pg_dumpsería-Fc(personalizado).No puede convertir un volcado de formato SQL en formato personalizado o en formato de directorio sin restaurarlo en una base de datos PostgreSQL y luego volcar la base de datos restaurada.
fuente
pg_restoresin undbnameargumento para convertirlo en un volcado de formato SQL si lo necesita. No puedes hacer lo contrario.pg_restoreadmite la restauración paralela, y si la usas será MUCHO más rápido.