shiori/internal/database/sqlite_noncgo.go
Felipe Martin 21165aa2e7
feat: allow tag filtering and count retrieval via api v1 (#1079)
* fix: frontend url to retrieve bookmark count

* chore: unneeded type in generic

* feat: allow tag filtering and count retrieval

* fix: make styles

* fix: make swagger

* fix: make swag

* tests: refactored gettags tests

* fix: initialise tags empty slice
2025-03-12 23:10:50 +01:00

42 lines
981 B
Go

//go:build linux || windows || darwin || freebsd
// +build linux windows darwin freebsd
package database
import (
"context"
"fmt"
"github.com/huandu/go-sqlbuilder"
"github.com/jmoiron/sqlx"
_ "modernc.org/sqlite"
)
// OpenSQLiteDatabase creates and open connection to new SQLite3 database.
func OpenSQLiteDatabase(ctx context.Context, databasePath string) (sqliteDB *SQLiteDatabase, err error) {
// Open database
rwDB, err := sqlx.ConnectContext(ctx, "sqlite", databasePath)
if err != nil {
return nil, fmt.Errorf("error opening writer database: %w", err)
}
rDB, err := sqlx.ConnectContext(ctx, "sqlite", databasePath)
if err != nil {
return nil, fmt.Errorf("error opening reader database: %w", err)
}
sqliteDB = &SQLiteDatabase{
dbbase: dbbase{
writer: rwDB,
reader: rDB,
flavor: sqlbuilder.SQLite,
},
}
if err := sqliteDB.Init(ctx); err != nil {
return nil, fmt.Errorf("error initializing database: %w", err)
}
return sqliteDB, nil
}