
Tengo por ahí un proyecto fallido que he buscado revivir. El proyecto incluye una base de datos en PostgreSQL; base de datos que diseñé usando Visual Paradigm. Aunque el producto usa Java, 😖, opté en aquel entonces pagar por un a licencia temporal por las capacidades de ingeniería inversa y de generación de código a partir de un diagrama. Pero, ahora, he buscado cambiar de herramienta de diseño.
Buscando opciones, el nombre de pgModeler apareció varias veces, indagué un poco más y al final opté por darle a ésta una oportunidad. Las distribuciones compiladas de esta herramienta se hacen por licenciamiento, lo que implica un costo pero siendo una herramienta de código abierto, esta puede ser construida a partir del código fuente disponible. Para esto se requiere algunas herramientas y ciertos recursos: Qt, Xcode, PostgreSQL y algunas bibliotecas más. Mi primer intento de construcción, como es de esperarse, no estuvo exento de «atorones», problemas y aprendizaje.
Lo primero fue sobre Qt («cute») y su licenciamiento. La instalación de esta herramienta no fue mayor problema.
Lo segundo ha sido sobre PostgreSQL. Tengo instalada la aplicación Postgres.app y una de mis dudas era si podía hacer uso de ésta para hacer uso de las bibliotecas que incluye y así evitar el tener que hacer una instalación más. Al final debí descargar una distribución de binarios de PostgreSQL destinada a ser usada cuando se incluye a este SMBD en alguna otra aplicación. Descarga que hice en el directorio creado al clonar el proyecto de pgModeler. Si bien esto me ahorró tener que hacer una segunda instalación de PostgreSQL, sí debí copiar algunas cosas en /Library para el run-time.
Y lo tercero ha sido todo el proceso de construcción, ya que las instrucciones provistas por el desarrollador de pgModeler tampoco están exentas de errores y omisiones. Si bien hubo problemas que poco a poco fueron resueltos, no hubo errores que me impidieran seguir y hubo varios warnings que no vi o ignoré pero que después «me pasaron la factura.» El primer intento de construcción terminó en una aplicación que no arrancaba.
Siguiente

