39 lines
587 B
Go
39 lines
587 B
Go
package db
|
|
|
|
import (
|
|
"database/sql"
|
|
"log"
|
|
|
|
_ "modernc.org/sqlite"
|
|
)
|
|
|
|
var DB *sql.DB
|
|
|
|
func InitDatabase(dbPath string) error {
|
|
var err error
|
|
DB, err = sql.Open("sqlite", dbPath)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
_, err = DB.Exec(`
|
|
PRAGMA journal_mode = WAL;
|
|
PRAGMA synchronous = NORMAL;
|
|
`)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
_, err = DB.Exec(
|
|
`CREATE TABLE IF NOT EXISTS sites (
|
|
subdomain TEXT PRIMARY KEY,
|
|
data BLOB NOT NULL,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
view_count INTEGER DEFAULT 1
|
|
)`,
|
|
)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|