Sqlite Pure Go

dimanche 6 novembre 2022 · 1 minute · 208 mots

Serait-il possible d’embarquer une base de données dans son programme pour éviter de gérer une instance MySQL ou Postgres ?

Encore plus fort, cette base peut-elle être interrogée en SQL ? C’est que je n’ai pas envie d’apprendre une autre façon de requêter les données.

La réponse est évidemment oui (sinon je n’écrirai pas ce billet) et ce, grâce à une implémentation en pure Go de Sqlite3.

Voici donc une rapide introduction à ce packet !

Comment l’installer ?

En ajoutant une ligne dans l’import :

import (
	...
	_ "modernc.org/sqlite"
	...
)

On n’oublie pas d’exécuter un go mod tidy pour lancer la résolution des dépendances et télécharger automatiquement le paquet.

Comment l’utiliser ?

Sqlite peut stocker ses données dans un fichier. Il faut donc spécifier un tel fichier :

...
db, err := sql.Open("sqlite", "/tmp/testbase.db")
...

Comment la requêter ?

Exactement comme avec une autre base de données, en utilisant le package sql. Par exemple, pour une requête simple qui renvoi des lignes de résultats :

rows, err := db.Query("SELECT * FROM userinfo")

Et voilà pour le tour rapide de ce paquet !

Ce paquet est un bon moyen d’embarquer une base de données à moindre frais dans son programme tout en conservant le paradigme SQL.

technique go sqlite