New opens (or creates) the SQLite database and runs migrations.
()
| 36 | |
| 37 | // New opens (or creates) the SQLite database and runs migrations. |
| 38 | func New() (*DB, error) { |
| 39 | p, err := config.DBPath() |
| 40 | if err != nil { |
| 41 | return nil, err |
| 42 | } |
| 43 | conn, err := sql.Open("sqlite", p) |
| 44 | if err != nil { |
| 45 | return nil, fmt.Errorf("failed to open database: %w", err) |
| 46 | } |
| 47 | d := &DB{conn: conn} |
| 48 | if err := d.initTables(); err != nil { |
| 49 | conn.Close() |
| 50 | return nil, err |
| 51 | } |
| 52 | return d, nil |
| 53 | } |
| 54 | |
| 55 | // Close closes the database connection. |
| 56 | func (d *DB) Close() error { |
no test coverage detected