initial commit
This commit is contained in:
47
database.go
Normal file
47
database.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
_ "embed"
|
||||
"log"
|
||||
"os"
|
||||
"path"
|
||||
|
||||
"sensor_dashboard/db"
|
||||
|
||||
_ "github.com/mattn/go-sqlite3"
|
||||
_ "modernc.org/sqlite"
|
||||
)
|
||||
|
||||
//go:embed schema.sql
|
||||
var ddl string
|
||||
|
||||
func InitDB(datasourceDir string) *db.Queries {
|
||||
ctx := context.Background()
|
||||
|
||||
_, err := os.ReadDir(datasourceDir)
|
||||
if err != nil {
|
||||
if os.IsNotExist(err) {
|
||||
err := os.MkdirAll(datasourceDir, 0755)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
} else {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
sqliteDB, err := sql.Open("sqlite3", path.Join(datasourceDir, "sqlite.db"))
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
_, err = sqliteDB.ExecContext(ctx, ddl)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
queries := db.New(sqliteDB)
|
||||
|
||||
return queries
|
||||
}
|
||||
Reference in New Issue
Block a user