add sqlc and sqlite

This commit is contained in:
m
2026-07-12 00:02:27 +02:00
parent b6e38e930c
commit a2b3f75321
11 changed files with 182 additions and 4 deletions
+33
View File
@@ -0,0 +1,33 @@
package db
import (
"database/sql"
"fmt"
"os"
_ "modernc.org/sqlite"
)
const driver = "sqlite"
func Connect() (*sql.DB, error) {
path := os.Getenv("DB_PATH")
if path == "" {
path = "vaultdrop.db"
}
dsn := fmt.Sprintf("file:%s?_journal_mode=WAL&_busy_timeout=5000&_foreign_keys=on", path)
database, err := sql.Open(driver, dsn)
if err != nil {
return nil, fmt.Errorf("open db: %w", err)
}
database.SetMaxOpenConns(1)
if err := database.Ping(); err != nil {
return nil, fmt.Errorf("ping db: %w", err)
}
return database, nil
}
+31
View File
@@ -0,0 +1,31 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.31.1
package db
import (
"context"
"database/sql"
)
type DBTX interface {
ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
PrepareContext(context.Context, string) (*sql.Stmt, error)
QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
QueryRowContext(context.Context, string, ...interface{}) *sql.Row
}
func New(db DBTX) *Queries {
return &Queries{db: db}
}
type Queries struct {
db DBTX
}
func (q *Queries) WithTx(tx *sql.Tx) *Queries {
return &Queries{
db: tx,
}
}
@@ -0,0 +1,4 @@
-- VaultDrop Schema
-- Tables will be added here as the project evolves.
SELECT 1;
+5
View File
@@ -0,0 +1,5 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.31.1
package db
+21
View File
@@ -0,0 +1,21 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.31.1
// source: placeholder.sql
package db
import (
"context"
)
const getHealth = `-- name: GetHealth :one
SELECT 1 AS ok
`
func (q *Queries) GetHealth(ctx context.Context) (int64, error) {
row := q.db.QueryRowContext(ctx, getHealth)
var ok int64
err := row.Scan(&ok)
return ok, err
}
@@ -0,0 +1,2 @@
-- name: GetHealth :one
SELECT 1 AS ok;