En esta versión incluye varias mejoras y adiciones importantes:
- Nuevo módulo de importación y exportación: Optimizados y con varios bugs corregidos.
- Seguimiento y registro de cambios.
- Sincronización de estructura y datos entre servidores: el cual habíamos probado hace algunos días.
- Soporte de replicación
Y otros cambios menores y varias optimizaciones en el sistema interno. Vale la pena probarlo, no he encontrado problemas o bugs relevantes que puedan afectar nuestro trabajo o que vayan a echar a perder nuestras bases de datos (de hecho no he encontrado ningún error, podría pasar por una versión estable).
Excelente noticia y excelentes adiciones realizadas por el equipo de phpMyAdmin.
Ahora es posible crear interfaces web usando solamente lenguaje SQL (o mejor: PLPGSQL), HTML (con algunos comentario HTML especiales) y algo de configuración XML con PostgreSQL, según acaba de anunciarse en el boletín oficial de noticias de PostgreSQL. Es una tecnología comparable con PL/SQL for web de Oracle que hemos usado durante varios años y que por fin tendremos totalmente disponible en una de los motores de bases de datos favorito: PostgreSQL que actualmente su edición estable va por la versión 8.4 y la versión de desarrollo 8.5 tiene propuestas bastante interesantes que estaré comentando posteriormente.
Tanta maravilla en PostgreSQL es gracias a un proyecto de código abierto llamado Karoo Project, que aunque acaba de lanzarse y está en estado Alpha, funciona bastante bien.
¿Qué consejos podríamos darles a los desarrolladores? ¿Alguna utilidad extra?
Luego de trabajar con costosas configuraciones de SQL Server y Oracle la gran mayoría de mi carrera profesional, casi siempre defendiendo estas alternativas de forma “viciada” a capa y espada es difícil abrir los ojos y ver otras opciones, especialmente por esa “propaganda” que apoya la idea (ahora extinta) que: SQL Server y/o Oracle son (o fueron) las mejores elecciones o alternativas de base de datos para la organización. Y creo que muchos solemos ser los “abogados” de las bases de datos comerciales.
Tal vez, estas bases de datos nos han dado de comer durante muchos años, no hay duda, incluso seamos profesionales, tal vez no expertos, pero sí profesionales en el manejo de estos motores, que muchas veces hemos tratado a los demás como “herejes” por no aceptar “la verdad”. Y así como hay profesionales “adictos” a estas bases de datos también, están quienes les guardan distancia por distintas razones.
¿MySQL? Por favor, ¿se están burlando?. ¿PostgreSQL?, Gracias, aunque es en proyecto serio, necesitamos una base de datos de la que podamos depender y confiar.
Suenan familiares las frases anteriores, ¿verdad?.
¿Cuántas veces hemos llevado a cabo algún “análisis” para determinar si, de hecho, SQL Server y/o Oracle eran las mejores elecciones no para mí, sino para el equipo, el cliente, el empleador y la organización?
0
Y si hemos realizado con diligencia esos análisis, ¿Qué hemos aprendido? Dos cosas:
SQL Server y Oracle son realmente bases de datos excelentes. (Está bien, eso ya lo sabíamos.)
SQL Server y Oracle son una elección errónea para el 95% de las necesidades de almacenamiento de datos, incluso a nivel empresarial.
Hoy en día, es agradable pensar en SQL Server y Oracle como las Estrellas de la muerte del universo de las bases de datos relacionales (para decirlo en términos de la Guerra de las Galaxias), es decir, extremadamente poderosas, monolíticas, brillantes, complejas casi más allá de la comprensión que una simple mente humana pueda llegar a tener, y que significan un gasto monumental de dinero excepto en esas raras situaciones cuando se necesita destruir un planeta.
He podido ver (al menos) a una docena de compañías derrochando dinero en bases de datos que no necesitan, impactando y confundiendo sus balances finales con esquemas de licencias que adornan las oficinas, perpetuando así la Falacia del Software de Marca:
En igualdad de condiciones, y asumiendo que se tiene el presupuesto, generalmente se prefiere un costoso (por no decir caro) bien “ajustado” producto comercial como [inserte el producto comercial aquí] a análogos más económicos [inserte producto open-source o de precio razonable aquí]. Los desarrolladores del proyecto XYZ usaron [costoso producto comercial], nuestro XYZ interno usa [producto comercial costoso], ergo, nueva política de la compañía: se utiliza [producto comercial costoso]. Claro, a $89,000 por licencia, [producto comercial costoso] es un poco costoso, pero a quién estamos engañando? Gastamos [inserte un monto realmente ridículo de dinero solo disponible en Monopoly aquí] en IT cada año.
Está bien claro, se ha gastado una cantidad ridícula de dinero en IT. Alguna vez se ha preguntado por qué?
Veamos el siguiente ejemplo en este cuadro (Está inglés pero creo que es bastante claro):
Por qué comprometer su proyecto, su organización, su imperio, para construir y mantener una “Estrella de la Muerte” cuando lo que realmente necesita es una nave X-Wing, un AT-AT, o por mucho, un Destructor de Estrellas? Especialmente dado que:
La gran mayoría de aplicaciones no necesita las capacidades de las últimas, grandes y majestuosas versiones de las base de datos de Microsoft y Oracle .
Firebird SQL, PostgreSQL y MySQL son 100% gratis (en el caso de MySQL hay una versión comercial) lo que significa que, sí eso mismo, no más fatalidad económica a causa de licencias comerciales. (Claro, cabe mencionar que Oracle ahora es dueño de Sun y por ende controla a MySQL.)
Oracle y SQL Server tiene características más potentes que MySQL o PostgreSQL o Firebird o cualquier otra base de datos de código abierto. Tienen una funcionalidad más integrada. Nadie podría afirmar lo contrario. Pero son los desarrolladores y DBAs y las personas que toman las decisiones de compra totalmente conscientes (por ejemplo) tan solo de cuán ricas y poderosas son las características técnicas de PostgreSQL?
Una base de datos de clase empresarial, PostgreSQL cuenta con sofisticadas funciones como el control de concurrencia multi-versión (MVCC), puntos de restauración en el tiempo, tablespaces, replicación asincrónica, transacciones anidadas (savepoints), copias de seguridad en línea/en caliente, un sofisticado analizador/optimizador de consultas, y un sistema write ahead para la tolerancia a fallos. Es compatible con conjuntos de caracteres internacionales, codificación de caracteres multibyte, Unicode, y tiene en cuenta la configuración regional para el ordenamiento, sensibilidad a mayúsculas y minúsculas, y formateo. Es altamente escalable, tanto en la enorme cantidad de datos que puede manejar como en el número de usuarios concurrentes que puede gestionar. Hay sistemas PostgreSQL activos en entornos de producción que manejan 4 terabytes de datos sin problemas.
Dejando las configuraciones de PostgreSQL a un lado, están los desarrolladores conscientes de que MySQL tiene más 11 millones de instalaciones incluyendo gigantes tales como Facebook, YouTube, Flickr, y Wikipedia? Claro, Todo el mundo lo sabe. MySQL se ejecuta en la web, cierto? Entonces, realmente necesitamos el soporte de visualización hiper-cúbica cuatri-dimensional de las bases de datos comerciales cuando las necesidades en datos de la mayoría de organizaciones es modesta, y cuando las dos o tres bases de datos de código abierto han comprobado repetidamente sus capacidades y temple?
No.
No a menos que su necesidad pertenezca al 1% de los escenarios, aprovechando las características únicas de las bases de datos propietarias Oracle/SQL Server. (En tal caso, puede que tenga otro tipo de problema.)
De lo contrario la respuesta es simplemente: no.
Pero no permita que eso lo detenga! Por todo los medios, si usted está en un contrato gubernamental sobrecosteado donde desperdiciar dinero es fomentado, adelante y despréndase de ese dinero que le hace tanto estorbo y adquiera una de esas costosas bases de datos cerradas. Si cuando Microsoft o Oracle dicen “salte!” su organización dice “qué tan alto?”, prosiga y cierre el trato adquiriendo esa licencia costosa de plataforma “superior”. Si su organización está dominada por un montón de bocones aspirantes a evagelistas de tecnología que llevan a cabo una agenda personal, como generalmente es el caso, entonces probablemente no hay mucho que usted pueda hacer en este caso.
Pero si ud cuida el dinero, si cree que…
No! NO está bien desperdiciar una cuarto de millón de dólares al año en licencias de bases de datos a pesar de que el presupuesto IT esté en decenas de millones…
… y si tiene actualmente tiene el poder para influenciar sobre las decisiones de compra, entonces utilice bases de datos de código abierto siempre que le sea posible, y bases de datos comerciales cuando absolutamente deba hacerlo.
Entre mis labores diarias consulto y modifico bases de datos MySQL, PostgreSQL y Firebird principalmente, y hoy me he llevado una sorpresa bastante agradable cuando abrí phpMyAdmin.
Entre los scripts que tengo programados para ejecución automática en mi equipo está uno que consulta actualizaciones de diferentes programas y paquetes en los diferentes repositorios SVN, Mercurial o GIT y descarga las últimas actualizaciones del paquete en cuestión, en este caso de phpMyAdmin 3.3.0-dev ha bajado la última versión de desarrollo del SVN y me he encontrado con una nueva pestaña: “Synchronize” (Sincronizar para las versiones en castellano).
Nueva pestaña sincronizar disponible en phpMyAdmin 3.3.0
Como buen ingeniero no pude aguantarme las ganas y di click en la pestaña para probar esa nueva opción y me encontré con una página sencilla pero bastante intuitiva.
Contenido página Sincronizar en phpMyAdmin 3.3.0
Luego de investigar de seleccionar una base de datos local y crear una de prueba vacía de destino decidí continuar haciendo click sobre el botón Go. Ahora me sorprende con una nueva página: la página de comparación de las bases de datos.
Selección de opciones a sincronizar en phpMyAdmin: datos y/o estructura
Puedo probar cómo efectivamente ha comparado no solo la estructura de las tablas sino también de los datos permitiendo agregar los registros faltantes a la base de datos destino. Al hacer click sobre el botón “Apply selected changes” (Aplicar cambios seleccionados) y curiosamente hace exactamente eso, ejecuta las consultas y regresa a la página de comparación. Luego de hacer click sobre el botón “Synchronize databases” ejecuta los cambios que hayamos seleccionado y muestra un informe con las sentencias SQL que se ejecutaron. En mi caso ejecutó todo sin errores ni problemas.
Les invito a probar esta nueva utilidad, parece que los desarrolladores de phpMyAdmin han escuchado nuestras plegarias y han visto nuestras necesidades. Vaya que han desarrollado una utilidad excelente: fácil, sencilla y hace exactamente lo que dice.
Qué otro módulo sería interesante tener en phpMyAdmin? No sería mala idea hacerles unas cuantas recomendaciones al equipo de desarrollo. Seguiré probando y les contaré alguna novedad.
Esta noticia que se estaba esperando desde hace varios días por fin ha dado fruto. Entre las principales novedades están:
Recuperación en paralelo de la Base de Datos, acelerando la recuperación hasta 8 veces más.
Permisos por columna, (muy esperado) permitiendo un control más “granular” de los datos sensibles.
Soporte de “Paginación” (Collation) por Base de Datos, haciendo que PostgreSQL sea más útil en entornos multi-lenguaje.
Actualizaciones En-El-Sitio a través de pg_migrator beta, permite actualizar de la versión 8.3 a la 8.4 sin grandes tiempos muertos en la base de datos.
Nuevas herramientas de monitoreo de consultas, permitiendo a los administradores ver de cerca la actividad de las consultas.
Y novedades como Join recursivos, parámetros por defecto para los procedimientos almacenados, entre muchos otros, permiten que la administración y la programación sea más compata y sencilla.
Entonces, no se diga más, a actualizar nuestros motores de bases de datos de PostgreSQL a la vresión 8.4.