SQLite

Petit mémo des commandes courantes pour gérer une base de données SQLite3

SQLite est un système de base de données léger basé sur un simple fichier de stockage avec l'extension .db. Il n'y a pas de configuration particulière côté serveur. On a juste besoin d'un client (la commande sqlite que nous allons installer, ou les wrapper fournis dans différents langages de programmation).

Installation de la commande sqlite sous MacOS avec homebrew

1brew install sqlite

Création d'une base à partir du fichier structure.sql suivant :

1create table tbl1(one varchar(10), two smallint);
2insert into tbl1 values('hello!', 10);
3insert into tbl1 values('goodbye', 20);

puis exécutez

1$ sqlite3 test.db < structure.sql
2$ file test.db
3test.db: SQLite 3.x database, last written using SQLite version 3028000

Accès avec une app en node.js via la dépendance sqlite3 :

1npm install sqlite3

Le code JavaScript d'exemple

 1#!/usr/bin/env node
 2const sqlite3 = require('sqlite3');
 3
 4let db = new sqlite3.Database('test.db', (err) => {
 5  if (err) {
 6    console.error(err.message);
 7  }
 8  console.log('Connecté');
 9});
10
11db.all('SELECT * FROM tbl1', [], (err, rows) => {
12  if (err) {
13    throw err;
14  }
15  rows.forEach((row) => {
16    console.log(row.one,row.two);
17  });
18});
19db.close();

affichera

1Connecté
2hello! 10
3goodbye 20

le format .db est stable et bien documenté, pour la v3, il serait donc transportable facilement. De plus il se gzip bien.

Usage du CLI

Pour n'exporter que la structure dans un fichier structure.sql

1echo ".schema" | sqlite3 test.db > structure.sql

Pour exporter la structure et les données dans un fichier structure-data.sql

1echo ".dump" | sqlite3 test.db > structure-data.sql
comments powered by Disqus