2009-06-20 26 views
9

Tengo un problema bastante básico: parece que no puedo conectar CakePHP a mi base de datos SQLite. Sorprendentemente, no encontré mucha información al respecto en Internet, aunque podría estar buscando las palabras clave incorrectas. Sin embargo, este es mi código de conexión:¿Cómo conecto CakePHP a una base de datos SQLite?

var $default = array(
     'driver' => 'sqlite', 
     'connect' =>'sqlite_popen', 
     'persistent' => false, 
     'host' => 'localhost', 
     'port' => '', 
     'login' => '', 
     'password' => '', 
     'database' => '/home/MY_USER_NAME/public_html/my_database.sqlite', 
     'schema' => '', 
     'prefix' => '', 
     'encoding' => '' 
); 

Aún así, Cake dice "La torta NO se puede conectar a la base de datos". Además, no sé dónde ver los registros "reales" (es decir, el error devuelto por el "controlador" de SQLite). Entonces, llegué a un callejón sin salida. ¿Que debería hacer?

Gracias de antemano.

+0

No entiendo la votación negativa: aunque la política de SO era que no había "preguntas demasiado obvias". –

Respuesta

8

A partir del CakePHP 2.0, Sqlite 3 es compatible con la caja.

Asegúrese de que SQLite está activado en su configuración de PHP:

phpinfo(); 

Dentro app/Config/databases.php puede definir la base de datos SQLite como esto:

public $default = array(
     'datasource' => 'Database/Sqlite', 
     'persistent' => false, 
     'database' => 'my_database_name', 
     'prefix' => '', 
     'encoding' => 'utf8', 
); 

Ahora compruebe su archivo app/webroot/my_database_name.sqlite.

1

¿Está tratando de conectarse a una base de datos SQLite 3? CakePHP aún no los admite.

Aparte de eso, es posible que desee intentar agregar el / principal en su camino. Parece que estás tratando de hacer un camino absoluto, pero sin la barra diagonal no va a hacer lo que crees que va a hacer.

+0

Añadida la barra diagonal, simplemente la olvidé cuando escribí la ruta aquí (volví a escribir la ruta con los nombres cambiados para proteger a los inocentes). Escuché sobre el problema de SQLite 3, pero no sé cuál es la versión de la base de datos que creé, no vi esta opción en el IDE (estoy usando el Administrador de SQLite de extensión de Firefox). ¿Cómo lo descubro? –

+0

"select sqlite_version()" le mostrará la versión del motor sqlite en uso. –

+0

Resolvió el problema renunciando al Administrador de SQLite, descargando la base de datos SQLite 2, ensuciándome las manos y codificando la base de datos yo mismo. –

6

SQLite3 aún no es oficialmente compatible con CakePHP ... probablemente porque el archivo adjunto a este error/mejora funciona.

https://trac.cakephp.org/ticket/3003

obtener la última versión del archivo, que se actualizará con los parches más recientes, subirlo a su directorio cake/libs/model/datasources/dbo y configurarlo en su archivo database.php.

estoy usando un archivo llamado dbo_sqlite3.php

archivo Mi configuración utiliza esto para la configuración del controlador:

'driver' => 'sqlite3', 
+0

¡Es bueno saber eso, podría usarlo en futuros proyectos! ¡Gracias! –

6

Cómo CakePHP con SQLite3:

Requirments:

Pasos:

Desembale las fuentes de datos plug-in en su lugar.

Editar dbo_sqlite3.php y añadir:

App::import('Datasource','DboSource'); 

... justo antes de la definición de 'clase'.

Usar la siguiente configuración en el archivo de database.php:

var $default = array(
    'datasource' => 'Datasources.DboSqlite3', 
    'login' => '', 
    'password' => '', 
    'database' => '/full/path/to/db.sqlite'); 

Done.

+0

Sí, ahora ya es fácil = D el problema fue que no estaban disponibles cuando se publicó esta pregunta. Votando por la referencia de todos modos. =) –

Cuestiones relacionadas