mirror of
https://github.com/go-shiori/shiori.git
synced 2025-09-14 00:45:33 +08:00
* 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
42 lines
981 B
Go
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
|
|
}
|