Actualizar el entorno de desarrollo en PostgreSQL

En la vida de un DBA de PostgreSQL, hay situaciones que se repiten más de lo que nos gustaría. El equipo de desarrollo detecta un problema en producción y, al intentar reproducirlo en el entorno de desarrollo, se dan cuenta de que los datos están desactualizados —a veces incluso de hace más de un año—. La solución parece obvia: actualizar el entorno de desarrollo con datos recientes de producción.

A primera vista, esta petición puede sonar compleja o incluso arriesgada, pero no te preocupes: no es tan complicado como parece. Hoy vamos a repasar los pasos necesarios para llevar a cabo este proceso, tomando como base un excelente artículo del blog “Cómo ser DBA”.

Antes de sumergirnos en los comandos de exportación e importación de esquemas en PostgreSQL, daremos un poco de contexto técnico para entender por qué este procedimiento es importante y cómo hacerlo de forma segura, minimizando riesgos y asegurando que el entorno de desarrollo refleje fielmente la realidad de producción en la fecha solicitada.

En nuestro caso, el equipo de desarrollo detectó un problema en producción que no se pudo reproducir en desarrollo, porque los datos del entorno de pruebas tienen más de un año de antigüedad. Por ello, se solicitó actualizar los datos de desarrollo con una copia exacta de producción hasta un momento concreto.

Empezamos a actualizar el entorno de desarrollo

La primera acción consiste en exportar el esquema requerido a un archivo .sql usando pg_dump, que viene incluido en los binarios de instalación de PostgreSQL. Por ejemplo:

actualizar el entorno de desarrollo postgresql gpsos

Les detallamos cada una de las opciones utilizadas:

  • -d: nombre de la base de datos que queremos exportar, ya que podemos tener varias corriendo dentro del mismo servidor
  • -F: indica que el formato de salida será texto plano
  • –schema: selecciona el esquema específico a exportar
  • -f : define la ruta y el nombre del archivo de salida; combinamos la fecha y hora actuales para que el archivo sea único y fácil de identificar.

El resultado será un archivo como export_Esquema_250920251106.sql, donde se refleja la fecha y hora de creación.

Transferir el archivo al destino

Si existe conexión directa entre servidores, podemos usar SCP para mover el archivo. Si no, habría que descargarlo a la máquina local y luego subirlo al servidor destino. En este ejemplo, usamos la conexión directa:

Realizamos un backup previo

Antes de importar los datos, es recomendable hacer un backup completo del entorno de desarrollo para poder revertir cambios si fuera necesario:

actualizar el entorno de desarrollo postgresql gpsos

Aquí:

  • Quitamos la opción --schema para incluir toda la base de datos.
  • -C y -c generan sentencias de creación y eliminación de la base de datos (DROP DATABASE y CREATE DATABASE), asegurando que la importación sea limpia.

Antes de importar, eliminamos manualmente el esquema que vamos a reemplazar para evitar conflictos:

Finalmente, lanzamos el import utilizando el fichero .sql  que trajimos de producción. Para que la operación se ejecute en segundo plano y podamos cerrar la sesión SSH sin problemas, utilizamos nohup:

actualizar el entorno de desarrollo postgresql gpsos

El log de la operación se guardará en nohup.out, que podemos monitorizar con tail.

Con estos pasos, el entorno de desarrollo queda actualizado con los datos más recientes de producción, permitiendo que el equipo trabaje con información consistente y actualizada.

Si tu también necesitas realizar este tipo de tareas y prefieres que lo hagan los profesionales, contacta con nosotros sin compromiso.

¿Aún no conoces Query Performance? Descubre cómo puede ayudarte en tu entorno Oracle. Más información en su página de LinkedIn.

Sígue a GPS en LinkedIn

Referencia: https://comoserdba.com/postgresql/exportar-e-importar-un-esquema-en-postgresql/

Deja una respuesta

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