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.