File storage rewrite (#2676)

* Restructure data layer part 2 (#2599)
* Refactor and separate image model
* Refactor image query builder
* Handle relationships in image query builder
* Remove relationship management methods
* Refactor gallery model/query builder
* Add scenes to gallery model
* Convert scene model
* Refactor scene models
* Remove unused methods
* Add unit tests for gallery
* Add image tests
* Add scene tests
* Convert unnecessary scene value pointers to values
* Convert unnecessary pointer values to values
* Refactor scene partial
* Add scene partial tests
* Refactor ImagePartial
* Add image partial tests
* Refactor gallery partial update
* Add partial gallery update tests
* Use zero/null package for null values
* Add files and scan system
* Add sqlite implementation for files/folders
* Add unit tests for files/folders
* Image refactors
* Update image data layer
* Refactor gallery model and creation
* Refactor scene model
* Refactor scenes
* Don't set title from filename
* Allow galleries to freely add/remove images
* Add multiple scene file support to graphql and UI
* Add multiple file support for images in graphql/UI
* Add multiple file for galleries in graphql/UI
* Remove use of some deprecated fields
* Remove scene path usage
* Remove gallery path usage
* Remove path from image
* Move funscript to video file
* Refactor caption detection
* Migrate existing data
* Add post commit/rollback hook system
* Lint. Comment out import/export tests
* Add WithDatabase read only wrapper
* Prepend tasks to list
* Add 32 pre-migration
* Add warnings in release and migration notes
This commit is contained in:
WithoutPants
2022-07-13 16:30:54 +10:00
parent 30877c75fb
commit 5495d72849
359 changed files with 43690 additions and 16000 deletions

View File

@@ -7,10 +7,17 @@ import (
"github.com/jmoiron/sqlx"
)
type dbi struct{}
type dbReader interface {
Get(dest interface{}, query string, args ...interface{}) error
Select(dest interface{}, query string, args ...interface{}) error
Queryx(query string, args ...interface{}) (*sqlx.Rows, error)
QueryxContext(ctx context.Context, query string, args ...interface{}) (*sqlx.Rows, error)
}
func (*dbi) Get(ctx context.Context, dest interface{}, query string, args ...interface{}) error {
tx, err := getTx(ctx)
type dbWrapper struct{}
func (*dbWrapper) Get(ctx context.Context, dest interface{}, query string, args ...interface{}) error {
tx, err := getDBReader(ctx)
if err != nil {
return err
}
@@ -18,8 +25,8 @@ func (*dbi) Get(ctx context.Context, dest interface{}, query string, args ...int
return tx.Get(dest, query, args...)
}
func (*dbi) Select(ctx context.Context, dest interface{}, query string, args ...interface{}) error {
tx, err := getTx(ctx)
func (*dbWrapper) Select(ctx context.Context, dest interface{}, query string, args ...interface{}) error {
tx, err := getDBReader(ctx)
if err != nil {
return err
}
@@ -27,8 +34,8 @@ func (*dbi) Select(ctx context.Context, dest interface{}, query string, args ...
return tx.Select(dest, query, args...)
}
func (*dbi) Queryx(ctx context.Context, query string, args ...interface{}) (*sqlx.Rows, error) {
tx, err := getTx(ctx)
func (*dbWrapper) Queryx(ctx context.Context, query string, args ...interface{}) (*sqlx.Rows, error) {
tx, err := getDBReader(ctx)
if err != nil {
return nil, err
}
@@ -36,7 +43,7 @@ func (*dbi) Queryx(ctx context.Context, query string, args ...interface{}) (*sql
return tx.Queryx(query, args...)
}
func (*dbi) NamedExec(ctx context.Context, query string, arg interface{}) (sql.Result, error) {
func (*dbWrapper) NamedExec(ctx context.Context, query string, arg interface{}) (sql.Result, error) {
tx, err := getTx(ctx)
if err != nil {
return nil, err
@@ -45,7 +52,7 @@ func (*dbi) NamedExec(ctx context.Context, query string, arg interface{}) (sql.R
return tx.NamedExec(query, arg)
}
func (*dbi) Exec(ctx context.Context, query string, args ...interface{}) (sql.Result, error) {
func (*dbWrapper) Exec(ctx context.Context, query string, args ...interface{}) (sql.Result, error) {
tx, err := getTx(ctx)
if err != nil {
return nil, err