Skip to content

Commit 50f646b

Browse files
committed
Allow multiple instances in memory
1 parent ca5ebb3 commit 50f646b

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

database/db.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -219,9 +219,19 @@ func NewDbFromConfig(c *Config, logger *logging.Logger, connectorCallbacks Retry
219219
}
220220
db = sqlx.NewDb(sql.OpenDB(NewConnector(connector, logger, connectorCallbacks)), PostgreSQL)
221221
case "sqlite":
222-
addr = c.Database
222+
var (
223+
name = c.Database
224+
mode = ""
225+
)
226+
227+
if strings.Contains(c.Database, ":memory:") && c.Database != ":memory:" {
228+
name = strings.Split(c.Database, ":memory:")[1]
229+
mode = "mode=memory&"
230+
}
231+
232+
addr = fmt.Sprintf("file:%s?%scache=shared", name, mode)
223233

224-
liteDb, err := sql.Open(SQLite, fmt.Sprintf("file:%s?cache=shared", c.Database))
234+
liteDb, err := sql.Open(SQLite, addr)
225235
if err != nil {
226236
return nil, errors.Wrap(err, "can't open sqlite database")
227237
}

0 commit comments

Comments
 (0)