filebrowser/storage/psql/psql.go
2022-11-20 00:38:27 +08:00

45 lines
1.1 KiB
Go

package psql
import (
"database/sql"
"github.com/filebrowser/filebrowser/v2/auth"
"github.com/filebrowser/filebrowser/v2/settings"
"github.com/filebrowser/filebrowser/v2/share"
"github.com/filebrowser/filebrowser/v2/storage"
"github.com/filebrowser/filebrowser/v2/users"
)
func ConnectDB(path string) (*sql.DB, error) {
db, err := sql.Open("postgres", path)
if err == nil {
return db, nil
}
return nil, err
}
// NewStorage creates a storage.Storage based on Bolt DB.
func NewStorage(db *sql.DB) (*storage.Storage, error) {
userStore := users.NewStorage(usersBackend{db: db})
shareStore := share.NewStorage(shareBackend{db: db})
settingsStore := settings.NewStorage(settingsBackend{db: db})
authStore := auth.NewStorage(authBackend{db: db}, userStore)
err := save(db, "version", 2) //nolint:gomnd
if err != nil {
return nil, err
}
return &storage.Storage{
Auth: authStore,
Users: userStore,
Share: shareStore,
Settings: settingsStore,
}, nil
}
func save(db *sql.DB, name string, from interface{}) error {
// return db.Set("config", name, from)
return nil
}