Embedded Replicas
This commit is contained in:
21
lib/db.go
21
lib/db.go
@ -10,7 +10,7 @@ import (
|
||||
"sort"
|
||||
"strings"
|
||||
|
||||
_ "github.com/tursodatabase/libsql-client-go/libsql"
|
||||
"github.com/tursodatabase/go-libsql"
|
||||
)
|
||||
|
||||
var DBClient *sql.DB
|
||||
@ -23,14 +23,25 @@ func InitDB() error {
|
||||
return fmt.Errorf("database configuration missing")
|
||||
}
|
||||
|
||||
finalDBUrl := fmt.Sprintf("%s?authToken=%s", dbUrl, dbToken)
|
||||
// Determine DB path based on /data directory existence
|
||||
dbPath := "himbot.db" // default to local
|
||||
if _, err := os.Stat("/data"); !os.IsNotExist(err) {
|
||||
dbPath = "/data/himbot.db"
|
||||
}
|
||||
|
||||
client, clientError := sql.Open("libsql", finalDBUrl)
|
||||
replica, replicaError := libsql.NewEmbeddedReplicaConnector(
|
||||
dbPath,
|
||||
dbUrl,
|
||||
libsql.WithAuthToken(dbToken),
|
||||
)
|
||||
|
||||
if clientError != nil {
|
||||
fmt.Fprintf(os.Stderr, "failed to open db %s: %s", dbUrl, clientError)
|
||||
if replicaError != nil {
|
||||
fmt.Fprintf(os.Stderr, "failed to open db %s: %s", dbUrl, replicaError)
|
||||
os.Exit(1)
|
||||
}
|
||||
// finalDBUrl := fmt.Sprintf("%s?authToken=%s", dbUrl, dbToken)
|
||||
|
||||
client := sql.OpenDB(replica)
|
||||
|
||||
DBClient = client
|
||||
|
||||
|
Reference in New Issue
Block a user