Embedded Replicas

This commit is contained in:
2024-11-04 11:41:29 -06:00
parent 359520fe83
commit 6a55017624
5 changed files with 36 additions and 9 deletions

View File

@ -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