Would it be possible to embed a database to avoid managing a MySQL or Postgres instance?
Even better, can this database be queried in SQL? I don’t want to learn another way to query data.
The answer is obviously yes (otherwise I will not write this post) thanks to a pure Go implementation of Sqlite3.
So here is a quick introduction to this package !
How to install it?
By adding a line in the import bloc :
import(
...
_ "modernc.org/sqlite"
...
)
Don’t forget to run a go mod tidy
to start solving the dependencies and
automatically download the package.
How to use it ?
Sqlite can store its data in a file, therefore we need to specify such file :
...
db, err := sql.Open("sqlite", "/tmp/testbase.db")
...
How to request it?
Exactly like with another db, using the sql package. For instance, for a simple query that returns rows of results:
rows, err := db.Query("SELECT * FROM userinfo")
That’s it !
This package is a good way to embed a database cheaply in its program while keeping the SQL paradigm.