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 resto...

Pero esto no es tan sencillo, resulta que hay incompatibilidades entre estos dos dialectos y resolverlas a mano requeriría un tiempo del que probablemente no dispongamos, para esto podemos recurrir a sequel, con Ruby y las librerías de desarrollo de los clientes de MySQL y SQLite instaladas podemos conseguirlo haciendo

gem sqlite3
gem mysql
gem sequel

Una vez instalado para convertir la base de datos solo habría que hacer

sequel 'mysql://db_username:db_pass@db_host/db_name' -C "sqlite://db.sqlite"

Y tendremos la base de daños migrada a SQLite en db.sqlite, solo falta la configuración.

En el directorio de instalación de ownCloud hay uno llamado config, dentro, el archivo a editar para pasar a la nueva base de datos es config.php, el significado de cada línea se puede ver en config.sample.php, concretamente habría que cambiar las líneas "dbtype" de mysql a sqlite.

Por último queda añadir la nueva base de datos a la carpeta data con el nombre que tomaba la base de datos y la extensión .db y listo, tras asignar los permisos para que ownCloud pueda acceder y modificar el archivo ya podemos usar de nuevo la plataforma.

Haciendo MySQLdumps más amigables » « Extrayendo subtitulos de un .mkv