cakephp-sqlite

Per un’esigenza lavorativa ho utilizzato il mio framework MVC preferito, CakePHP, con il database SQLite. L’ORM integrato in CakePHP è basato su PDO, quindi, oltre all’immancabile MySQL, permette l’interazione anche con altri database tra i quali SQLite. Vediamo come procedere.

Per prima cosa, nel file app/Config/database.php, specifichiamo come datasource “SQLite” nel seguente modo:

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

Bene, e poi?

Basta così! Fatto.

Non devi modificare neanche una linea di codice nella tua applicazione se, quest’ultima, era già esistente e memorizzava dati in MySQL. Un grande vantaggio nell’utilizzo di un framework è proprio questo: un livello di astrazione che permette al codice di essere indipendente da qualsiasi motore di archiviazione dati o schema relazionale.

Per un accesso diretto al database puoi utilizzare Adminer.

Non dimenticare che, tra MySQL e SQLite, ci sono comunque delle differenze, anche nel tipo di dati e nella sintassi SQL. Nel caso sei proprio obbligato a dover scrivere delle query SQL, ricorda che il seguente codice SQL per MySQL:

CREATE TABLE IF NOT EXISTS `table` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY  (`id`)
) ENGINE=MYISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1;

diventa così per SQLite:

CREATE TABLE `table` (
"id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
"name" text NULL
);

In ogni caso, per qualsiasi cosa, fai riferimento alla documentazione ufficiale. Come sempre 😉

NO SPAM. Non fornirò la tua email a terzi e riceverai solo contenuti che ti interessano sugli argomenti che tratto e potrai cancellarti quando vuoi con un link che trovi in tutte le email.