this repo has no description
1package db 2 3import ( 4 "database/sql" 5 "strings" 6 7 _ "github.com/mattn/go-sqlite3" 8) 9 10func New(dbPath string) (*sql.DB, error) { 11 // https://github.com/mattn/go-sqlite3#connection-string 12 opts := []string{ 13 "_foreign_keys=1", 14 "_journal_mode=WAL", 15 "_synchronous=NORMAL", 16 "_auto_vacuum=incremental", 17 } 18 19 return sql.Open("sqlite3", dbPath+"?"+strings.Join(opts, "&")) 20} 21 22func Init(d *sql.DB) error { 23 _, err := d.Exec(` 24 create table if not exists _jetstream ( 25 id integer primary key autoincrement, 26 last_time_us integer not null 27 ); 28 29 create table if not exists events ( 30 rkey text not null, 31 nsid text not null, 32 event text not null, -- json 33 created integer not null -- unix nanos 34 ); 35 36 create table if not exists users ( 37 id integer primary key autoincrement, 38 did text not null unique, 39 created text not null default (strftime('%Y-%m-%dT%H:%M:%SZ', 'now')) 40 ); 41 42 create table if not exists public_keys ( 43 id integer primary key autoincrement, 44 did text not null, 45 key text not null, 46 created text not null default (strftime('%Y-%m-%dT%H:%M:%SZ', 'now')), 47 unique(did, key) 48 ); 49 `) 50 51 return err 52}