Migrando ownCloud de MySQL a SQLite

En su momento realicé una instalación de ownCloud utilizando MySQL como base de datos, más tarde se hizo obvio que esta no era la opción correcta y que la necesidad de ahorrar toda la memoria RAM posible y el hecho de que no hubiera más accesos que los míos apuntaron a que debía haber optado por SQLite, el proceso es algo complicado la primera vez así que aquí queda explicado por si hay que repetirlo...

Lo primero es convertir la propia base de datos a SQlite, idealmente esto supondría sacar un mysqdump, pasárselo a SQLite y el estándar del lenguaje haría el continue.

Haciendo MySQLdumps más amigables

Hace un tiempo había tenido que tratar con dumps de MySQL generados por mysqldump(1), a falta de una forma de control de versiones más específica (que por suerte no llegó a hacer falta) se utilizó git(7). Ahora bien, git permite hacer diff entre versiones, pero esto (al menos por defecto) se hace línea por línea, lo que produce que los diff entre dumps muestren grandes cambios aunque solo se produzcan en una fila de la base de datos, para solucionar ese inconveniente está este programa sqlsplit.c.

El programa no está muy pulido, tiene una función main que solo abre archivos y otra que (con la ayuda de dos continue.

Activando los logs generales de MySQL sobre la marcha [tip]

Suponed que estamos programando algo que hace uso de una base de datos MySQL y que de repente comienza a comportarse de forma extraña, como podemos saber que peticiones hace, pues activando los logs generales así:

set global general_log_file = '/var/log/mysql/mysql.log';
-- El archivo puede ser cualquiera, no?
set global general_log = 1;

Lo malo es que hace falta ser root para poder hacerlo (y que el rendimiento cae, claro, no es algo que deba estar siempre activo).

Happy debugging.

Making MySQLdumps more friendly

Some time ago I had to work with some MySQL database dumps generated by mysqldump(1), lacking a version control software (which for­tu­nate­ly hasn't been needed) more specific, the one used was git(7). Now, git allows to make diff across versions, but this (at least by default) is made line by line so mysqldumps get a lot of data changes even if only a row is the one changed to solve this issue this program was written sqlsplit.c.

The program isn't too polished, it has a main function that only opens the file and another which (with the help of two macro *_*) simulates something like a continue.