40 lines
575 B
Go
40 lines
575 B
Go
package db
|
|
|
|
import (
|
|
"database/sql"
|
|
|
|
_ "modernc.org/sqlite"
|
|
)
|
|
|
|
var conn *sql.DB
|
|
|
|
func HandleConn(testing ...bool) *sql.DB {
|
|
if len(testing) > 0 {
|
|
conn, _ = sql.Open("sqlite", "file::memory:?cache=shared")
|
|
buildSchema()
|
|
return conn
|
|
}
|
|
if conn == nil {
|
|
conn, _ = sql.Open("sqlite", "records.db")
|
|
buildSchema()
|
|
return conn
|
|
}
|
|
return conn
|
|
}
|
|
|
|
func buildSchema() error {
|
|
c := HandleConn()
|
|
_, err := c.Exec(`
|
|
|
|
CREATE TABLE IF NOT EXISTS records
|
|
(
|
|
UUID TEXT NOT NULL,
|
|
Handle TEXT NOT NULL UNIQUE,
|
|
URL TEXT NOT NULL,
|
|
PRIMARY KEY (UUID)
|
|
);
|
|
|
|
`)
|
|
return err
|
|
}
|