Sólo un idiota puede ser totalmente feliz.

Mario Vargas Llosa

Suscríbete al feed

Comentarios recientes

Cómo sincronizar tus bases de datos en MySQL y PostgreSQL

Si desarrollas aplicaciones web ya debes estar usando algún sistema de control de versiones para mantener tu código sincronizado entre servidores, ¿pero qué sucede con tus bases de datos en MySQL o PostgreSQL?

Claro, es posible replicar, un posible escenario sería un servidor maestro con uno o más servidores esclavos, pero eso puede ser demasiado para simples proyectos o si solo necesitas estar seguro de que tienes los mismos datos en tus servidores de desarrollo, staging y producción luego de cambios importantes en el código, como por ejemplo, antes de lanzar una nueva versión.

Afortunadamente bastan unos pocos y sencillos comandos para mantener tus bases de datos sincronizadas. Sí, nuevamente la consola al rescate.

Aplicaciones de código abierto para modelar bases de datos

¿Qué herramientas de código abierto existen para modelar bases de datos? Es la pregunta que muchos desarrolladores nos hacemos a menudo.

Existen varias alternativas comerciales, muy sólidas y completas, claro que sí, pero los precios son prohibitivos para la mayoría de desarrolladores solitarios que rodamos por el mundo. Basta un ejemplo: el reconocido CA Erwin Data Modeler cuesta US$ 3995 por licencia, con esa cantidad prefiero completar mi lista de gadgets que quiero para el 2007 y añadir otra laptop con Linux a mi arsenal.

Hace algún tiempo encontré a DBDesigner 4 y lo utilicé en varios proyectos para modelar mis bases de datos MySQL, el único RDBMS que maneja, y me alegré al saber que MySQL había adquirido el producto y lo relanzaría como MySQL Workbench, sin embargo MySQL ha enfocado sus esfuerzos en sus otras herramientas y el avance en MySQL Workbench no ha sido significativo, aunque hace poco leí en los foros de MySQL que pronto estaban retomando con fuerza el desarrollo de Workbench. DBDesigner 4 aún está disponible y es una buena opción si solo necesitas modelos para MySQL, aunque la instalación en Ubuntu es un poco complicada (en Fedora no tuve problemas).

¿Pero qué sucede si, como yo, también usas PostgreSQL? La única alternativa de código abierto que encontré hace algunos meses fue Mogwai ER-Designer, permite trabajar no solo con MySQL y PostgreSQL sino también con Oracle y otros RDBMS comerciales. Mogwai ER-Designer es una aplicación Java por lo que corre en cualquier sistema operativo. Desafortunadamente la interfaz aún necesita un poco más de trabajo y el proceso de creación de modelos, aún cuando teóricamente correcto (incluyendo el uso de dominios), no es muy amigable, ello sin contar que el desarrollo de la aplicación parece haberse detenido.

La opción que ahora estoy usando, y que recomiendo, es Power*Architect, al igual que Mogwai está escrito en Java, por lo que es multiplataforma, y funciona tanto con MySQL, PostgreSQL, Oracle y otros RDBMS.

PowerArchitect tiene una interfaz mejor diseñada, crear modelos es muy sencillo y generar SQL toma unos pocos clics. El equipo de desarrollo decidió abrir el código de PowerArchitect hace muy poco y aunque hay mucho por mejorar (como el uso de tipos nativos para auto_increment en MySQL y serial en PostgreSQL) creo que van por muy buen camino y la versión 1.0 promete.

Así que allí lo tienen, hay una luz en el horizonte de las aplicaciones de código abierto para modelar bases de datos. ¡Oh!, y si conoces más cuéntanos sobre ellas.

Actualización 19 setiembre: Sean me comentó que los tipos nativos auto_increment en MySQL y serial en PostgreSQL ya funcionan en las últimas versiones de Power*Architect.