DIAGRAMA RELACIONAL desde PostgreSQL(Ingeniería Inversa)

Cuantas veces nos ha sucedido que necesitamos analizar una bases de datos que no hemos diseñado y tampoco hay documentación sobre el modelo utilizado, o tal vez la diseñamos pero no nos acordamos o no documentamos el modelo. Para esta actividad hay varia herramientas que te permiten hacer ingeniería inversa, entre ella esta el Visual Paradigm o  E/R studio de embarcadero, entre otras, pero que son privativas. Según en este Blog, existen algunas libres, como son Open System Architect 4.0.0 o SQL Power Architect 1.0.6, las cuales no he utilizado.

Resulta que recientemente me llegó por correo electrónico que existe una biblioteca en python que permite dicha actividad de forma muyyyyy sencilla, pues me puse a probar y la verdad me resultó fantástica y sencilla, incluso me hice un script,  :D, donde le paso unos parámetros y me construye una imagen(.png) con el diagrama de las tablas. Esta biblioteca de python utiliza la relaciones de las llaves foráneas para obtener las relaciones de las tablas.

 Pues mano a la obra, lo primero es instalar las dependencias necesarias: Sigue leyendo

Anuncios

Control de versiones de bases de datos PostgreSQL con apgdiff

Se liberó una versión de la base de datos y se puso esa versión en producción y luego se hicieron modificaciones estructurales en desarrollo, pero fueron tantos que no se sabe con exactitud lo que se cambió”, esto casi seguro nos ha pasado a varios. Es decir un escenario muy común es tener una versión de la base de datos en producción y otra en desarrollo. Para los que trabajan con PostgreSQL (donde me incluyo :D), existen algunas herramientas para llevar el control de las versiones, personalmente he utilizado apgdiff, la cual esta desarrollada en java y es bien sencilla de utilizar, en resumen lo que hace es analizar dos script de bases de datos PostgreSQL y retorna las diferencias entre el primero y el segundo, donde esas diferencias son las que se aplican  para llevar a cabo los cambios en la base de datos. Ejemplificando el uso de apgdiff: Sigue leyendo