Better syncing
This commit is contained in:
parent
0194c3d4fe
commit
46c24134d5
2 changed files with 17 additions and 8 deletions
10
lib/db.go
10
lib/db.go
|
@ -14,6 +14,7 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var DBClient *sql.DB
|
var DBClient *sql.DB
|
||||||
|
var DBConnector *libsql.Connector
|
||||||
|
|
||||||
func InitDB() error {
|
func InitDB() error {
|
||||||
dbUrl := os.Getenv("DATABASE_URL")
|
dbUrl := os.Getenv("DATABASE_URL")
|
||||||
|
@ -29,21 +30,22 @@ func InitDB() error {
|
||||||
dbPath = "/data/himbot.db"
|
dbPath = "/data/himbot.db"
|
||||||
}
|
}
|
||||||
|
|
||||||
replica, replicaError := libsql.NewEmbeddedReplicaConnector(
|
connector, connectorError := libsql.NewEmbeddedReplicaConnector(
|
||||||
dbPath,
|
dbPath,
|
||||||
dbUrl,
|
dbUrl,
|
||||||
libsql.WithAuthToken(dbToken),
|
libsql.WithAuthToken(dbToken),
|
||||||
)
|
)
|
||||||
|
|
||||||
if replicaError != nil {
|
if connectorError != nil {
|
||||||
fmt.Fprintf(os.Stderr, "failed to open db %s: %s", dbUrl, replicaError)
|
fmt.Fprintf(os.Stderr, "failed to open db %s: %s", dbUrl, connectorError)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
// finalDBUrl := fmt.Sprintf("%s?authToken=%s", dbUrl, dbToken)
|
// finalDBUrl := fmt.Sprintf("%s?authToken=%s", dbUrl, dbToken)
|
||||||
|
|
||||||
client := sql.OpenDB(replica)
|
client := sql.OpenDB(connector)
|
||||||
|
|
||||||
DBClient = client
|
DBClient = client
|
||||||
|
DBConnector = connector
|
||||||
|
|
||||||
return runMigrations()
|
return runMigrations()
|
||||||
}
|
}
|
||||||
|
|
|
@ -113,17 +113,24 @@ func ProcessMessage(s *discordgo.Session, m *discordgo.MessageCreate) error {
|
||||||
|
|
||||||
func GetBalance(discordID, guildID string) (int, error) {
|
func GetBalance(discordID, guildID string) (int, error) {
|
||||||
var balance int
|
var balance int
|
||||||
err := DBClient.QueryRow(`
|
|
||||||
|
_, syncError := DBConnector.Sync()
|
||||||
|
|
||||||
|
if syncError != nil {
|
||||||
|
fmt.Println("Error syncing database:", syncError)
|
||||||
|
}
|
||||||
|
|
||||||
|
queryError := DBClient.QueryRow(`
|
||||||
SELECT h.balance
|
SELECT h.balance
|
||||||
FROM himbucks h
|
FROM himbucks h
|
||||||
JOIN users u ON h.user_id = u.id
|
JOIN users u ON h.user_id = u.id
|
||||||
WHERE u.discord_id = ? AND h.guild_id = ?`,
|
WHERE u.discord_id = ? AND h.guild_id = ?`,
|
||||||
discordID, guildID).Scan(&balance)
|
discordID, guildID).Scan(&balance)
|
||||||
if err == sql.ErrNoRows {
|
if queryError == sql.ErrNoRows {
|
||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
if err != nil {
|
if queryError != nil {
|
||||||
return 0, fmt.Errorf("failed to get balance: %w", err)
|
return 0, fmt.Errorf("failed to get balance: %w", queryError)
|
||||||
}
|
}
|
||||||
return balance, nil
|
return balance, nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue