Sebastián escribió:
> Buenas tardes,
> 
> Ampliando un sistema en producción, se hacen cambios frecuentes (cada 15
> días) que requieren replicar los cambios de la base de datos en desarrollo a
> la de producción.
> 
> A la vez sirve tomar datos de producción en la de desarrollo para realizar
> pruebas con datos actualizados.
> 
> Para los cambios de estructura he pensado utilizar pgModeler, con backup
> previo e interrupción del servicio antes de actuar, pero se me ocurre que en
> la lista puede haber mejores ideas.

Un modelo más conveniente es desarrollo->staging->producción, donde
"desarrollo" es lo que los desarrolladores hacen, y cuando tienen algo
listo se prueba primero en "staging" antes de ir a producción; staging
es una copia idéntica de producción.  Así los desarrolladores tienen más
libertad para hacer, al tiempo que estabilizas lo que está en producción
escudándolo de cambios que no hayan sido verificados con cuidado en
staging.

Pienso que para la dirección desarrollo->producción la vía de scripts
(ALTER TABLE etc) es razonable.  Pero desarrollo debería partir de un
respaldo de producción, no usando scripts de cambios.

Para generar los scripts, Euler Taveira desarrolló una herramienta
llamada pgquarrel que sirve para generar scripts de cambios entre una
versión de una DB y otra.  ¿Quizás eso te pueda ayudar?  Está en sus
comienzos, pero yo creo que promete.  Dale una mirada y si necesitas
más, recomiendo hablar con Euler (recomiendo ir al pgconf en Porto
Alegre, si tu portugués es mejor que el mío).

Finalmente, recuerda que en Postgres el DDL es transaccional: si tienes
un problema aplicando un script, aplicas ROLLBACK y estás de vuelta
donde estabas.  Cuando vayas a hacer algo en producción, siempre ten un
plan para volver al inicio en caso que las cosas se pongan verdes!

Saludos

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a