Re: Actualizar estructura de una BD en base a otra

From: "Pablo E(dot) Siciliano" <psiciliano(at)puentenet(dot)com>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Actualizar estructura de una BD en base a otra
Date: 2008-08-13 16:58:07
Message-ID: 002601c8fd65$c311ff80$2300a8c0@PuenteHnos.local
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola,

Hace un tiempo yo me planteaba lo mismo, y la sugerencia que me dieron y que
después de hacerlo un tiempo me parece excelente es:

1) Tener tres entornos: desarrollo, test y producción.
2) Bajar a desarrollo un backup de producción (Probablemente con datos no
reales pero representativos de los casos de prueba), a desarrollo antes de
empezar con los cambios y otra a test. Te quedás con el dump de test.
3) Mientras vas desarrollando, vas generando un script de creación /
modificación de la estructura. Lo vas subiendo al controlador de versiones
(Yo uso cvs, imagino que se puede hacer con cualquier otro)
4) Hacés un script que actualice el cvs y ejecute todos los scripts que se
agregaron o cambiaron .Usando cvs y bash sería algo así como:

for i in $i(cvs -q update|cut -d" "-f1);do
echo $i|psql db
done;

5) Probás la aplicación en test. Si no funciona bajás el dump, cambiás el
script de creación y volvés a ejecutar el bash.
6) Cuando lo tenés funcionando bien ejecutás el bash en producción.

Saludos.
Pablo.

PD: Si a alguien se le ocurre como hacer un rollback de esto de una forma
más práctica o rápida que restaurando un dump, les agradecería que me lo
informen!!!

----- Original Message -----
From: "Sam" <samanta(dot)fernandez(at)gmail(dot)com>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Tuesday, August 12, 2008 10:32 AM
Subject: Re: [pgsql-es-ayuda] Actualizar estructura de una BD en base a otra

Cualquier cambio que se haga a una bd tiene que hacerse mediante
scripts, nunca con editores gráficos, básicamente, porque es la única
forma de saber que lo que se desarrolló, y posteriormente testeó en QA
y UAT es exactamente lo mismo que se está tirando a producción.
Otro tema muy importante que viene a colacion con esto es el
versionado, te recomiendo este artículo:

http://www.codinghorror.com/blog/archives/001050.html

y en particular, los cinco links que tiene al blog de K. Scott Allen,
que toca unos cuantos puntos interesantes sobre el tema.

2008/8/12 el-PRiNCiPiTo <el-PRiNCiPiTo(at)terra(dot)es>:
> Hola, no se ni que titulo poner en el post porque no se si esta forma de
> trabajo que tenemos es muy buena. Yo creo que no así que agradezco
> cualquier
> sugerencia.
>
> Os explico a que me refiero con la forma de trabajo:
> Estamos desarrollando un programa que almacena los datos en una base de
> datos postgresql (la versión es 8.2). El programa ya esta funcionando pero
> vamos añadiéndole funciones, lo que hace que tengamos que añadir tablas o
> campos a las tablas ya creadas en el base de datos.
> Entonces tenemos una "copia" de la base de datos que se usa en el
> programa
> en el equipo en que se desarrolla el programa. Yo añado lo que necesito a
> esta base de datos y cuando actualizo el programa añado a mano cada tabla
> o
> campo nuevo en la base de datos "verdadera".
> El problema de esto es que, ademas de ser muy laborioso, no es nada
> practico ya que es difícil saber si has añadido todo lo nuevo.
>
> Entonces mi pregunta es si hay alguna forma de "actualizar" la base de
> datos del programa usando la "nueva versión" y conservando los datos que
> ya
> hay en la base de datos ya que los datos que tengo en la nueva son sólo
> para
> pruebas y los de la antigua son datos reales que no deben modificarse.
>
> Espero haberme explicado, yo creo que todo este proceso que hacemos es
> demasiado complicado y que debe haber un sistema mejor para trabajar así
> alguien me sugiere otra forma de trabajo que solucione este problema me
> serviría igualmente.
>
> Muchas gracias a todos.
> --
> TIP 5: ¿Has leído nuestro extenso FAQ?
> http://www.postgresql.org/docs/faqs.FAQ.html
>
--
TIP 2: puedes desuscribirte de todas las listas simultáneamente
(envía "unregister TuDirecciónDeCorreo" a majordomo(at)postgresql(dot)org)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2008-08-13 17:01:02 Re: Ayuda Respaldo incremental
Previous Message Cristián Osorio 2008-08-13 16:49:52 Re: Ayuda Respaldo incremental