Configurar Doctrine para usar SQLite en Symfony2

Posted by victor on February 14th, 2013
sqlite-logoSQLite es uno de los gestores de bases de datos más usados del mundo por su facilidad de uso y de incorporación en proyectos. Funciona almacenando toda la base de datos en un solo fichero y, a diferencia de otros gestores como MySQL u Oracle de tipo cliente-servidor, el proceso que gestiona los datos va embebido en la propia aplicación accediendo a la información mediante funciones en lugar de usar un protocolo que comunique al cliente con el servidor. SQLite cumple el estándar ACID por lo que implementa un mecanismo seguro para realizar transacciones. SQLite está más introducida en nuestras vidas de lo que creemos. El sistema operativo Android, el más usado del mundo en smartphones, lleva incorporado SQLite. Symfony2 usa SQLite en el WebProfiler para almacenar el historial de ejecución de nuestra aplicación en un fichero llamado profiler.db en /cache.

Configurar Doctrine DBAL

Symfony2 dispone de una detallada documentación para configurar el gestor de base de datos que va a emplear Doctrine. A continuación simplifico para mostrar como se configuraría el driver de SQLite: En primer lugar editamos el fichero app/config/config.yml:
# Doctrine Configuration
doctrine:
    dbal:
        driver:   %database_driver%
        host:     %database_host%
        port:     %database_port%
        dbname:   %database_name%
        user:     %database_user%
        password: %database_password%
        path:     %database_path% // importará el directorio donde está nuestra base de datos SQLite
        memory:   %database_memory%
        charset:  UTF8
Por último modificamos app/config/parameters.yml que es el que contiene los parámetros de configuración usados por el anterior fichero:
    database_driver: pdo_sqlite
    database_host:
    database_port:
    database_name:
    database_memory: false // true si queremos que la base de datos se volátil
    database_user: mi-usuario
    database_password: mi-password
    database_path: /directorio-mi-proyecto/app.db
Si queremos que nuestra base de datos sea volátil, debemos poner a true el valor de la propiedad database_memory y dejar vacío el valor de database_path. Ten en cuenta que el valor de estos parámetros es mútuamente excluyente.   Doctrine: Driver pdo_sqlite

Comments

comments powered by Disqus