mirror of
https://github.com/BillyOutlast/stash-box.git
synced 2026-02-04 11:01:17 +01:00
32 lines
612 B
Go
32 lines
612 B
Go
package database
|
|
|
|
import (
|
|
"github.com/jmoiron/sqlx"
|
|
)
|
|
|
|
var appSchemaVersion uint = 37
|
|
|
|
var databaseProviders map[string]databaseProvider
|
|
|
|
type databaseProvider interface {
|
|
Open(path string) *sqlx.DB
|
|
}
|
|
|
|
func Initialize(provider string, databasePath string) *sqlx.DB {
|
|
p := databaseProviders[provider]
|
|
|
|
if p == nil {
|
|
panic("No database provider found for " + provider)
|
|
}
|
|
|
|
db := p.Open(databasePath)
|
|
return db
|
|
}
|
|
|
|
func registerProvider(name string, provider databaseProvider) {
|
|
if databaseProviders == nil {
|
|
databaseProviders = make(map[string]databaseProvider)
|
|
}
|
|
databaseProviders[name] = provider
|
|
}
|