Un plugin que funcionaba en PostgreSQL y se caía en MariaDB: lo que nos enseñó un aviso de un usuario

cincocreative_17468 cincocreative_17468 Noticias Plugin AIDocumentos Fecha de creación: 18-09-2026 10:34:04 Última actualización: 18-09-2026 Contador de visitas: 1

Ayer por la tarde un usuario nos escribió con dos mensajes de error que le salían en AIDocumentos:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ') FROM 1 FOR 7) AS mes, COUNT(*) AS total, COUNT(CASE WHEN estado = 'importad...'

Estaba corregido y publicado esta mañana. Pero lo interesante no es el arreglo, que son cuatro líneas: es por qué no lo habíamos visto nosotros.

Un plugin, dos bases de datos

FacturaScripts funciona sobre PostgreSQL y sobre MySQL/MariaDB. Los dos hablan SQL, pero no exactamente el mismo SQL.

La pantalla de métricas de AIDocumentos agrupa los documentos por mes. Para eso recortaba los siete primeros caracteres de la fecha, así:

SUBSTRING(CAST(fecha AS VARCHAR) FROM 1 FOR 7)

En PostgreSQL funciona. En MySQL y MariaDB no existe el tipo VARCHAR dentro de un CAST — ahí se llama CHAR — así que el servidor rechaza la consulta entera. No es que devuelva un dato raro: es que no llega a ejecutarse, y la pantalla no se pinta.

Nuestro entorno de pruebas es PostgreSQL. Todas las pruebas pasaban. Y el plugin estaba roto para todo el que use MariaDB, que en hostings compartidos es la mayoría.

Lo que apareció al buscar lo mismo en los demás plugins

Un fallo así nunca viene solo. Buscando el mismo patrón en los 25 plugins apareció otro caso, en btransfer, y este era peor: el mismo SQL de PostgreSQL, pero envuelto en un try/catch para que la pantalla no se rompiera. Resultado en MariaDB: el recuadro de «envíos de este mes» mostraba 0 envíos, 0 archivos, 0 bytes aunque hubieras enviado diez cosas esa semana.

Un error visible es molesto. Un cero silencioso es peor: nadie escribe para preguntar, simplemente deja de fiarse del plugin.

Qué hemos cambiado, además del arreglo

Arreglar dos consultas es lo de menos. Lo que hacía falta era dejar de ser ciegos a esta familia entera de fallos, y para eso van tres cosas:

1. Un segundo entorno de pruebas sobre MariaDB. Ahora hay dos instalaciones de FacturaScripts que comparten la misma carpeta de plugins: una sobre PostgreSQL y otra sobre MariaDB. Lo que se arregla vale para las dos, y las dos se prueban antes de publicar nada.

2. Los 46 controladores se montan contra los dos motores. No solo las consultas escritas a mano: cada pantalla de cada plugin levanta sus vistas contra MariaDB y se comprueba que ninguna suelta un error de sintaxis.

3. Un revisor que no deja pasar SQL de un solo motor. Busca en el código los sospechosos habituales de los dos lados — CAST(... AS VARCHAR), ::text, ILIKE, DATE_TRUNC, TO_CHAR de PostgreSQL; DATE_FORMAT, IFNULL, GROUP_CONCAT, LIMIT a,b de MySQL — y si encuentra uno, no se publica.

Qué tienes que hacer

Si usas MySQL o MariaDB y te salían esos mensajes en AIDocumentos, actualiza a la 9.3. Si usas btransfer y el recuadro del mes te salía a cero, actualiza a la 2.3. En los dos casos: Panel de control > Plugins > Actualizar. No se pierde nada, ni hace falta tocar la configuración.

Si usas PostgreSQL, nunca te afectó ninguno de los dos.

Y gracias

Este fallo lo encontró un usuario que se tomó la molestia de copiar el mensaje de error y mandarlo, en vez de desinstalar y seguir con su día. Si algo no te cuadra en cualquiera de nuestros plugins, dilo: se arregla antes de lo que parece.


Amplía tus conocimientos con los cursos oficiales

Curso de usuario

Con este curso aprenderás a gestionar el día a día de tu negocio con FacturaScripts: hacer facturas, albaranes, pedidos, presupuestos, gestionar clientes, proveedores, tarifas, usuarios, además de usar el informe de impuestos. ¿A quién va dirigido? A cualquier usuario que quiera aprender rápidamente el manejo diario del programa.

332 0,00 €
Curso básico de PHP

¡Aprende a programar en PHP de manera fácil y divertida con nuestro curso básico! En este curso, te enseñaremos los conceptos fundamentales de la programación en PHP, incluyendo la sintaxis básica, el manejo de variables, estructuras de control de flujo y mucho más. Al terminar estarás listo para comenzar con el curso de creación de plugins para FacturaScripts.

63 5,99 €
Curso básico de programación

Con este curso aprenderá cómo crear un plugin sencillo para FacturaScripts: añadir nuevas páginas, tablas y columnas. Para entender este curso no se necesita mucha experiencia en programación, le enseñaremos los básico para modelar problemas sencillos. ¿A quién va dirigido? A cualquier persona con unos conocimientos muy básicos de programación o que ya han completado el curso de PHP. ¿Qué incluye? 18 lecciones con 14 vídeos explicativos.

395 5,99 €

Patrocinadores

Estas empresas y profesionales apoyan económicamente FacturaScripts y nos ayudan a dedicar más tiempo al desarrollo, las pruebas y la documentación.

ORO
PLATA
BRONCE
PRO

Si quieres impulsar nuevas mejoras y ayudar a que el proyecto siga creciendo, conviértete en patrocinador y forma parte de quienes lo hacen posible.

Patrocinar

Cookies
Usamos cookies necesarias para el funcionamiento del sitio y cookies opcionales para recordar tus preferencias y mejorar tu experiencia. Puedes aceptarlas todas, rechazarlas o configurar tus preferencias

Soporte