Saltar al contenido

PostgreSQL copia/transfiere datos de una base de datos a otra

Verificamos de forma cada post de nuestra web con la meta de enseñarte en todo momento información más veraz y certera.

Solución:

Esta es una tarea realmente sencilla. Simplemente use dblink para este propósito:

INSERT INTO t(a, b, c)
SELECT a, b, c FROM dblink('host=xxx user=xxx password=xxx dbname=xxx', 'SELECT a, b, c FROM t') AS x(a integer, b integer, c integer)

Si necesita obtener datos de una base de datos externa de manera regular, sería conveniente definir un servidor y un mapeo de usuarios. Entonces, podría usar una declaración más corta:

dblink('yourdbname', 'your query')

También hay otra manera de hacerlo. Si la extensión dblink no está disponible, es posible copiar datos directamente en la línea de comando, usando la tubería que conecta la entrada y salida estándar:

psql source_database -c 'COPY table TO stdout' | psql target_database -c 'COPY table FROM stdin'

Pero esto solo funcionará en Postgres 9.4 o superior.

Si está en postgresql 9.0 o posterior (y probablemente 8.0 o posterior) en una sesión de psql, también puede usar:

CREATE DATABASE new_database TEMPLATE original_database;

La base_de_datos_nueva será un clon de la base_de_datos_original, incluidas las tablas, el esquema de tabla, las codificaciones y los datos.

De los documentos:

La limitación principal es que no se pueden conectar otras sesiones a la base de datos de origen mientras se copia.

Recomendaría que verifique que el clon sea correcto con selecciones juiciosas de las tablas db nuevas y antiguas. Los documentos también dicen:

Es importante entender, sin embargo, que esto no está (todavía) pensado como una función de “COPIA DE BASE DE DATOS” de propósito general.

Te mostramos comentarios y valoraciones

Te invitamos a añadir valor a nuestro contenido informacional añadiendo tu veteranía en las notas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *