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