summaryrefslogtreecommitdiff
path: root/internal/db
diff options
context:
space:
mode:
Diffstat (limited to 'internal/db')
-rw-r--r--internal/db/bundb/bundb.go13
1 files changed, 11 insertions, 2 deletions
diff --git a/internal/db/bundb/bundb.go b/internal/db/bundb/bundb.go
index 191350d06..ca123543a 100644
--- a/internal/db/bundb/bundb.go
+++ b/internal/db/bundb/bundb.go
@@ -31,6 +31,7 @@ import (
"strings"
"time"
+ "github.com/google/uuid"
"github.com/jackc/pgx/v4"
"github.com/jackc/pgx/v4/stdlib"
"github.com/superseriousbusiness/gotosocial/internal/cache"
@@ -229,6 +230,15 @@ func sqliteConn(ctx context.Context) (*DBConn, error) {
// Append our own SQLite preferences
dbAddress = "file:" + dbAddress + "?cache=shared"
+ var inMem bool
+
+ if dbAddress == "file::memory:?cache=shared" {
+ dbAddress = fmt.Sprintf("file:%s?mode=memory&cache=shared", uuid.NewString())
+ log.Infof("using in-memory database address " + dbAddress)
+ log.Warn("sqlite in-memory database should only be used for debugging")
+ inMem = true
+ }
+
// Open new DB instance
sqldb, err := sql.Open("sqlite", dbAddress)
if err != nil {
@@ -240,8 +250,7 @@ func sqliteConn(ctx context.Context) (*DBConn, error) {
tweakConnectionValues(sqldb)
- if dbAddress == "file::memory:?cache=shared" {
- log.Warn("sqlite in-memory database should only be used for debugging")
+ if inMem {
// don't close connections on disconnect -- otherwise
// the SQLite database will be deleted when there
// are no active connections