Skip to content

Commit 75f93f1

Browse files
committed
Add support for SQLITE for dedicated DB
1 parent d48facd commit 75f93f1

File tree

4 files changed

+25
-1
lines changed

4 files changed

+25
-1
lines changed

api/go.mod

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ require (
4444
github.com/stretchr/testify v1.11.1
4545
github.com/swaggo/swag v1.16.6
4646
github.com/thedevsaddam/govalidator v1.9.10
47+
github.com/tursodatabase/libsql-client-go v0.0.0-20251219100830-236aa1ff8acc
4748
github.com/uptrace/uptrace-go v1.39.0
4849
github.com/xuri/excelize/v2 v2.10.0
4950
go.opentelemetry.io/otel v1.39.0
@@ -54,6 +55,7 @@ require (
5455
google.golang.org/api v0.264.0
5556
google.golang.org/protobuf v1.36.11
5657
gorm.io/driver/postgres v1.6.0
58+
gorm.io/driver/sqlite v1.6.0
5759
gorm.io/gorm v1.31.1
5860
gorm.io/plugin/opentelemetry v0.1.16
5961
)
@@ -83,10 +85,12 @@ require (
8385
github.com/PuerkitoBio/goquery v1.10.3 // indirect
8486
github.com/andybalholm/brotli v1.2.0 // indirect
8587
github.com/andybalholm/cascadia v1.3.3 // indirect
88+
github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
8689
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
8790
github.com/cespare/xxhash/v2 v2.3.0 // indirect
8891
github.com/clipperhouse/uax29/v2 v2.2.0 // indirect
8992
github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f // indirect
93+
github.com/coder/websocket v1.8.12 // indirect
9094
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
9195
github.com/envoyproxy/go-control-plane/envoy v1.35.0 // indirect
9296
github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect
@@ -129,6 +133,7 @@ require (
129133
github.com/mattn/go-colorable v0.1.14 // indirect
130134
github.com/mattn/go-isatty v0.0.20 // indirect
131135
github.com/mattn/go-runewidth v0.0.19 // indirect
136+
github.com/mattn/go-sqlite3 v1.14.22 // indirect
132137
github.com/mitchellh/copystructure v1.2.0 // indirect
133138
github.com/mitchellh/reflectwalk v1.0.2 // indirect
134139
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect

api/go.sum

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ github.com/andybalholm/brotli v1.2.0 h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwTo
6666
github.com/andybalholm/brotli v1.2.0/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY=
6767
github.com/andybalholm/cascadia v1.3.3 h1:AG2YHrzJIm4BZ19iwJ/DAua6Btl3IwJX+VI4kktS1LM=
6868
github.com/andybalholm/cascadia v1.3.3/go.mod h1:xNd9bqTn98Ln4DwST8/nG+H0yuB8Hmgu1YHNnWw0GeA=
69+
github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI=
70+
github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g=
6971
github.com/avast/retry-go v3.0.0+incompatible h1:4SOWQ7Qs+oroOTQOYnAHqelpCO0biHSxpiH9JdtuBj0=
7072
github.com/avast/retry-go v3.0.0+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevBhOOCWBLXXy3hyiqqBrY=
7173
github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs=
@@ -86,6 +88,8 @@ github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f h1:Y8xYupdHxryycyPlc9Y
8688
github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f/go.mod h1:HlzOvOjVBOfTGSRXRyY0OiCS/3J1akRGQQpRO/7zyF4=
8789
github.com/cockroachdb/cockroach-go/v2 v2.4.3 h1:LJO3K3jC5WXvMePRQSJE1NsIGoFGcEx1LW83W6RAlhw=
8890
github.com/cockroachdb/cockroach-go/v2 v2.4.3/go.mod h1:9U179XbCx4qFWtNhc7BiWLPfuyMVQ7qdAhfrwLz1vH0=
91+
github.com/coder/websocket v1.8.12 h1:5bUXkEPPIbewrnkU8LTCLVaxi4N4J8ahufH2vlo4NAo=
92+
github.com/coder/websocket v1.8.12/go.mod h1:LNVeNrXQZfe5qhS9ALED3uA+l5pPqvwXg3CKoDBB2gs=
8993
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
9094
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
9195
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -323,6 +327,8 @@ github.com/thedevsaddam/govalidator v1.9.10/go.mod h1:Ilx8u7cg5g3LXbSS943cx5kczy
323327
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
324328
github.com/tiendc/go-deepcopy v1.7.1 h1:LnubftI6nYaaMOcaz0LphzwraqN8jiWTwm416sitff4=
325329
github.com/tiendc/go-deepcopy v1.7.1/go.mod h1:4bKjNC2r7boYOkD2IOuZpYjmlDdzjbpTRyCx+goBCJQ=
330+
github.com/tursodatabase/libsql-client-go v0.0.0-20251219100830-236aa1ff8acc h1:lzi/5fg2EfinRlh3v//YyIhnc4tY7BTqazQGwb1ar+0=
331+
github.com/tursodatabase/libsql-client-go v0.0.0-20251219100830-236aa1ff8acc/go.mod h1:08inkKyguB6CGGssc/JzhmQWwBgFQBgjlYFjxjRh7nU=
326332
github.com/uptrace/uptrace-go v1.39.0 h1:MszuE3eX/z86xzYywN2JBtYcmsS4ofdo1VMDhRvkWrI=
327333
github.com/uptrace/uptrace-go v1.39.0/go.mod h1:FquipEqgTMXPbhdhenjbiLHG1R5WYdxVH6zgwHeMzzA=
328334
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=

api/main.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77

88
"github.com/NdoleStudio/httpsms/docs"
99
"github.com/NdoleStudio/httpsms/pkg/di"
10+
_ "github.com/tursodatabase/libsql-client-go/libsql"
1011
)
1112

1213
// Version is injected at runtime

api/pkg/di/container.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@ import (
77
"net/http"
88
"os"
99
"strconv"
10+
"strings"
1011
"time"
1112

1213
plunk "github.com/NdoleStudio/plunk-go"
1314
"github.com/pusher/pusher-http-go/v5"
15+
"gorm.io/driver/sqlite"
1416

1517
"github.com/NdoleStudio/httpsms/docs"
1618

@@ -228,6 +230,16 @@ func (container *Container) GormLogger() gormLogger.Interface {
228230
)
229231
}
230232

233+
func (container *Container) connect(dsn string, config *gorm.Config) (db *gorm.DB, err error) {
234+
if strings.HasPrefix(dsn, "postgres://") {
235+
return gorm.Open(postgres.Open(dsn), config)
236+
}
237+
return gorm.Open(sqlite.New(sqlite.Config{
238+
DriverName: "libsql",
239+
DSN: dsn,
240+
}), config)
241+
}
242+
231243
// DedicatedDB creates an instance of gorm.DB if it has not been created already
232244
func (container *Container) DedicatedDB() (db *gorm.DB) {
233245
container.logger.Debug(fmt.Sprintf("creating %T", db))
@@ -242,7 +254,7 @@ func (container *Container) DedicatedDB() (db *gorm.DB) {
242254
config = &gorm.Config{Logger: container.GormLogger()}
243255
}
244256

245-
db, err := gorm.Open(postgres.Open(os.Getenv("DATABASE_URL_DEDICATED")), config)
257+
db, err := container.connect(os.Getenv("DATABASE_URL_DEDICATED"), config)
246258
if err != nil {
247259
container.logger.Fatal(err)
248260
}

0 commit comments

Comments
 (0)