Usar WordPress con Sqlite

Cuando uno instala WordPress, uno de los requisitos es contar con una base de datos MySQL quedando limitado a este motor en particular. Sin embargo es posible utilizar como alternativa SQLite3.

Para contextualizar un poco, antes existía (todavía en realidad) un plugin llamado PDO for WordPress el cual permitía esta integración sin mayores problemas. Lo malo es que desde hace varios años ya no es desarrollado y por lo mismo su compatibilidad con versiones recientes es por lo bajo oscura y puede requerir cierta modificación al código base (recuerdo que lo probé hace tiempo con WordPress 3.6 y funcionaba). Lo bueno es que ahora existe una alternativa.

SQLite Integration

Es un plugin para WordPress que permite implementar lo anteriormente mencionado. A diferencia del uso tradicional, no se debe instalar una vez que el CMS esté configurado sino previo a esto ya que sino, no será posible usar SQLite. Otra cosa que hay que destacar es que no se permite elegir el motor de base de datos, sino que éste es reemplazado completamente de manera transparente para el usuario.

Dicho esto, y para usar WordPress con Sqlite, lo primero es descargarlo desde https://wordpress.org/plugins/sqlite-integration/.

Luego se descomprime y se mueve la carpeta extraída (sqlite-integration) en wp-content/plugins. Junto a esto, el archivo db.php que se encuentra en sqlite-integration/db.php se mueve a wp-content. No es necesario cambiar parámetros de la base de datos de wp-config.php (aunque sí cosas como salt, table prefix, etc).

Finalmente se inicia la instalación de WordPress y se procede como se haría normalmente. Cuando concluya el proceso quedará el sitio instalado y usando una base de datos SQLite.

De manera predeterminada, el archivo de base de datos se guarda en wp-content/database/.ht.sqlite y dicha carpeta cuenta con un .htaccess que niega el acceso mediante un DENY FROM ALL. Es posible cambiar esta ruta con una opción en wp-config.php

define('DB_FILE', 'your_database_name');

define('DB_DIR', '/home/youraccount/database_directory/');

Es posible volver a usar una base de datos MySQL pero lo que se debe tener en cuenta es que no se conservará ninguna información de la base de datos SQLite por lo que básicamente el sitio partiría de 0. Para cambiar el motor, se edita wp-config.php y se agrega.

define('USE_MYSQL', true);

Si se cambia a false, se vuelve a utilizar SQLite.

Finalmente, si bien es cierto que el plugin aparece en la lista no es necesario que esté activo para que funcione el cambio de motor aunque si se activa se puede contar con funciones extras como por ejemplo exportar la base de datos sin tener que copiar archivos manualmente mediante ftp.

Una lista de plugins incompatible se encuentra en la página del autor http://dogwood.skr.jp/wordpress/sqlite-integration/#plugin-compat

En un siguiente post hablaré de la migración de sitios cuando este motor es utilizado.