db_gorm

package
v0.0.0-...-8122643 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 5, 2024 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultDbConnector = PostgresDbConnector
View Source
var ObjectTypeName = utils.ObjectTypeName

Functions

func AllRows

func AllRows(db *gorm.DB, doc interface{}) (*sql.Rows, error)

func ConnectDB

func ConnectDB(dialector gorm.Dialector) (*gorm.DB, error)

func CountWithFilter

func CountWithFilter(db *gorm.DB, filter *Filter, doc interface{}) int64

func Create

func Create(db *gorm.DB, doc interface{}) *gorm.DB

func Delete

func Delete(db *gorm.DB, doc interface{}) error

func DeleteAll

func DeleteAll(db *gorm.DB, docs interface{}) error

func DeleteAllByFields

func DeleteAllByFields(db *gorm.DB, fields db.Fields, docs interface{}) error

func DeleteByField

func DeleteByField(db *gorm.DB, field string, value interface{}, doc interface{}) error

func DeleteById

func DeleteById(db *gorm.DB, id interface{}, doc interface{}) error

func Exists

func Exists(g *gorm.DB, filter *Filter, obj interface{}) (bool, error)

func FindAll

func FindAll(db *gorm.DB, docs interface{}, dest ...interface{}) error

func FindAllByFields

func FindAllByFields(db *gorm.DB, fields db.Fields, docs interface{}) error

func FindAllInterval

func FindAllInterval(db *gorm.DB, name string, interval *Interval, docs interface{}) error

func FindByField

func FindByField(db *gorm.DB, fieldName string, fieldValue interface{}, doc interface{}, dest ...interface{}) (bool, error)

func FindByFields

func FindByFields(db *gorm.DB, fields db.Fields, doc interface{}, dest ...interface{}) (bool, error)

func FindForShare

func FindForShare(db *gorm.DB, fields db.Fields, doc interface{}) (bool, error)

func FindForUpdate

func FindForUpdate(db *gorm.DB, fields db.Fields, doc interface{}) (bool, error)

func FindNotIn

func FindNotIn(db *gorm.DB, fields db.Fields, docs interface{}) error

func FindSelectNotIn

func FindSelectNotIn(db *gorm.DB, fields db.Fields, docModel interface{}, docs interface{}) error

func FindWithFilter

func FindWithFilter(db *gorm.DB, filter *Filter, paginator *Paginator, docs interface{}, dest ...interface{}) (int64, error)

func IsIndexField

func IsIndexField(field *schema.Field) bool

func PostgresCheckDuplicateKeyError

func PostgresCheckDuplicateKeyError(provider string, result *gorm.DB) (bool, error)

func PostgresDbCreator

func PostgresDbCreator(provider string, db *gorm.DB, dbName string) error

func PostgresDsnBuilder

func PostgresDsnBuilder(config *db.DBConfig) (string, error)

func PostgresOpener

func PostgresOpener(provider string, dsn string) (gorm.Dialector, error)

func PostgresPartitionedMonthAutoMigrate

func PostgresPartitionedMonthAutoMigrate(ctx logger.WithLogger, db *gorm.DB, models ...interface{}) error

func PostgresPartitionedMonthMigrator

func PostgresPartitionedMonthMigrator(provider string, ctx logger.WithLogger, db *gorm.DB, models ...interface{}) error

func PostgresTableExists

func PostgresTableExists(db *gorm.DB, tableName string) (bool, error)

func PrepareJoin

func PrepareJoin(f *FilterManager, g *gorm.DB, constructor *JoinQueryConstructor) (*gorm.DB, error)

func RowsByFields

func RowsByFields(db *gorm.DB, fields db.Fields, doc interface{}) (*sql.Rows, error)

func RowsWithFilter

func RowsWithFilter(db *gorm.DB, filter *Filter, paginator *Paginator, docs interface{}) (*sql.Rows, error)

func SetFilter

func SetFilter(g *gorm.DB, filter *Filter, paginator *Paginator, docs interface{}, paginate ...bool) *gorm.DB

func Sum

func Sum(g *gorm.DB, paginator *Paginator, groupFields []string, sumFields []string, filter *Filter, model interface{}, dest ...interface{}) (int64, error)

func SumWithFilter

func SumWithFilter(db *gorm.DB, filter *Filter, fields map[string]string, doc interface{}, result interface{}) error

func Transaction

func Transaction(db *gorm.DB, handler TransactionHandler) error

func UpdateField

func UpdateField(db *gorm.DB, field string, doc interface{}) error

func UpdateFieldMulti

func UpdateFieldMulti(db *gorm.DB, fields db.Fields, doc interface{}, field string, value interface{}) error

func UpdateFields

func UpdateFields(db *gorm.DB, fields db.Fields, doc interface{}) error

func UpdateFieldsAll

func UpdateFieldsAll(db *gorm.DB, doc interface{}, newFields db.Fields) error

func UpdateFielsdMulti

func UpdateFielsdMulti(db *gorm.DB, filter db.Fields, doc interface{}, newFields db.Fields) error

func UpdateWithFilter

func UpdateWithFilter(db *gorm.DB, filter *db.Filter, doc interface{}, fields db.Fields) error

Types

type DbConnector

type DbConnector struct {
	DialectorOpener          func(provider string, dsn string) (gorm.Dialector, error)
	DsnBuilder               func(config *db.DBConfig) (string, error)
	DbCreator                func(provider string, db *gorm.DB, dbName string) error
	CheckDuplicateKeyError   func(provider string, result *gorm.DB) (bool, error)
	PartitionedMonthMigrator func(provider string, ctx logger.WithLogger, db *gorm.DB, models ...interface{}) error
}

func PostgresDbConnector

func PostgresDbConnector() *DbConnector

type DbState

type DbState struct {
	// contains filtered or unexported fields
}

type FieldDescriptor

type FieldDescriptor struct {
	Json       string
	DbTable    string
	DbField    string
	FullDbName string
	Index      bool
	Schema     *schema.Field
}

type Filter

type Filter = db.Filter

type FilterManager

type FilterManager struct {
	// contains filtered or unexported fields
}

func NewFilterManager

func NewFilterManager(modelStore ...*ModelStore) *FilterManager

func (*FilterManager) ParseFilter

func (f *FilterManager) ParseFilter(query *db.Query, parserName string) (*db.Filter, error)

func (*FilterManager) ParseFilterDirect

func (f *FilterManager) ParseFilterDirect(query *db.Query, model interface{}, parserName string, vld ...*db.FilterValidator) (*db.Filter, error)

func (*FilterManager) PrepareFilterParser

func (f *FilterManager) PrepareFilterParser(model interface{}, name string, validator ...*db.FilterValidator) (db.FilterParser, error)

type FilterParser

type FilterParser struct {
	Manager     *FilterManager
	Destination *ModelDescriptor
	Validator   *db.FilterValidator
}

func (*FilterParser) Parse

func (f *FilterParser) Parse(query *db.Query) (*db.Filter, error)

func (*FilterParser) ParseValidateField

func (f *FilterParser) ParseValidateField(name string, value string, onlyName ...bool) (string, interface{}, error)

type GormCursor

type GormCursor struct {
	// contains filtered or unexported fields
}

func (*GormCursor) Close

func (c *GormCursor) Close(ctx logger.WithLogger) error

func (*GormCursor) Next

func (c *GormCursor) Next(ctx logger.WithLogger) (bool, error)

func (*GormCursor) Scan

func (c *GormCursor) Scan(ctx logger.WithLogger, obj interface{}) error

type GormDB

type GormDB struct {
	DbState
	// contains filtered or unexported fields
}

func New

func New(dbConnector ...*DbConnector) *GormDB

func (*GormDB) AllRows

func (g *GormDB) AllRows(ctx logger.WithLogger, obj interface{}) (db.Cursor, error)

func (*GormDB) AutoMigrate

func (g *GormDB) AutoMigrate(ctx logger.WithLogger, models []interface{}) error

func (*GormDB) Clone

func (g *GormDB) Clone() db.DB

func (*GormDB) Close

func (g *GormDB) Close()

func (*GormDB) Config

func (g *GormDB) Config() interface{}

func (*GormDB) Connect

func (g *GormDB) Connect(ctx logger.WithLogger) error

func (*GormDB) Create

func (g *GormDB) Create(ctx logger.WithLogger, obj interface{}) error

func (*GormDB) CreateDatabase

func (g *GormDB) CreateDatabase(ctx logger.WithLogger, dbName string) error

func (*GormDB) CreateDup

func (g *GormDB) CreateDup(ctx logger.WithLogger, obj interface{}, ignoreConflict ...bool) (bool, error)

func (*GormDB) Delete

func (g *GormDB) Delete(ctx logger.WithLogger, obj common.Object) error

func (*GormDB) DeleteByField

func (g *GormDB) DeleteByField(ctx logger.WithLogger, field string, value interface{}, model interface{}) error

func (*GormDB) DeleteByFields

func (g *GormDB) DeleteByFields(ctx logger.WithLogger, fields db.Fields, obj interface{}) error

func (*GormDB) EnableDebug

func (g *GormDB) EnableDebug(value bool)

func (*GormDB) EnableVerboseErrors

func (g *GormDB) EnableVerboseErrors(value bool)

func (*GormDB) Exists

func (g *GormDB) Exists(ctx logger.WithLogger, filter *Filter, obj interface{}) (bool, error)

func (*GormDB) FindByField

func (g *GormDB) FindByField(ctx logger.WithLogger, field string, value interface{}, obj interface{}, dest ...interface{}) (bool, error)

func (*GormDB) FindByFields

func (g *GormDB) FindByFields(ctx logger.WithLogger, fields db.Fields, obj interface{}, dest ...interface{}) (bool, error)

func (*GormDB) FindForShare

func (g *GormDB) FindForShare(ctx logger.WithLogger, fields db.Fields, obj interface{}) (bool, error)

func (*GormDB) FindForUpdate

func (g *GormDB) FindForUpdate(ctx logger.WithLogger, fields db.Fields, obj interface{}) (bool, error)

func (*GormDB) FindWithFilter

func (g *GormDB) FindWithFilter(ctx logger.WithLogger, filter *Filter, obj interface{}, dest ...interface{}) (int64, error)

func (*GormDB) ID

func (g *GormDB) ID() string

func (*GormDB) Init

func (g *GormDB) Init(ctx logger.WithLogger, cfg config.Config, vld validator.Validator, configPath ...string) error

func (*GormDB) InitWithConfig

func (g *GormDB) InitWithConfig(ctx logger.WithLogger, vld validator.Validator, cfg *db.DBConfig) error

func (*GormDB) Join

func (g *GormDB) Join(ctx logger.WithLogger, joinConfig *db.JoinQueryConfig, filter *Filter, dest interface{}) (int64, error)

func (*GormDB) Joiner

func (g *GormDB) Joiner() db.Joiner

func (*GormDB) MakeExpression

func (g *GormDB) MakeExpression(expr string, args ...interface{}) interface{}

func (*GormDB) MigrateDropIndex

func (g *GormDB) MigrateDropIndex(ctx logger.WithLogger, model interface{}, indexName string) error

func (*GormDB) NativeHandler

func (g *GormDB) NativeHandler() interface{}

func (*GormDB) ParseFilter

func (g *GormDB) ParseFilter(query *db.Query, parserName string) (*db.Filter, error)

func (*GormDB) ParseFilterDirect

func (g *GormDB) ParseFilterDirect(query *db.Query, model interface{}, parserName string, vld ...*db.FilterValidator) (*db.Filter, error)

func (*GormDB) PartitionedMonthAutoMigrate

func (g *GormDB) PartitionedMonthAutoMigrate(ctx logger.WithLogger, models []interface{}) error

func (*GormDB) PrepareFilterParser

func (g *GormDB) PrepareFilterParser(model interface{}, name string, validator ...*db.FilterValidator) (db.FilterParser, error)

func (*GormDB) RowsByFields

func (g *GormDB) RowsByFields(ctx logger.WithLogger, fields db.Fields, obj interface{}) (db.Cursor, error)

func (*GormDB) RowsWithFilter

func (g *GormDB) RowsWithFilter(ctx logger.WithLogger, filter *Filter, obj interface{}) (db.Cursor, error)

func (*GormDB) Sum

func (g *GormDB) Sum(ctx logger.WithLogger, groupFields []string, sumFields []string, filter *Filter, model interface{}, dest ...interface{}) (int64, error)

func (*GormDB) Transaction

func (g *GormDB) Transaction(handler db.TransactionHandler) error

func (*GormDB) Update

func (g *GormDB) Update(ctx logger.WithLogger, obj interface{}, filter db.Fields, newFields db.Fields) error

func (*GormDB) UpdateAll

func (g *GormDB) UpdateAll(ctx logger.WithLogger, obj interface{}, newFields db.Fields) error

func (*GormDB) UpdateWithFilter

func (g *GormDB) UpdateWithFilter(ctx logger.WithLogger, obj interface{}, filter *db.Filter, newFields db.Fields) error

type GormTransaction

type GormTransaction struct {
	GormDB
}

type Interval

type Interval = db.Interval

type JoinPair

type JoinPair struct {
	db.JoinPairBase
	// contains filtered or unexported fields
}

type JoinQuery

type JoinQuery struct {
	// contains filtered or unexported fields
}

func (*JoinQuery) Join

func (j *JoinQuery) Join(ctx logger.WithLogger, filter *Filter, dest interface{}) (int64, error)

type JoinQueryConstructor

type JoinQueryConstructor struct {
	db.JoinQueryBase
	// contains filtered or unexported fields
}

type JoinTable

type JoinTable struct {
	db.JoinTableBase
	// contains filtered or unexported fields
}

func (*JoinTable) Schema

func (jt *JoinTable) Schema(f *FilterManager) (*schema.Schema, error)

type Joiner

type Joiner struct {
	// contains filtered or unexported fields
}

func (*Joiner) Destination

func (j *Joiner) Destination(destination interface{}) (db.JoinQuery, error)

func (*Joiner) Join

func (j *Joiner) Join(model interface{}, field string) db.JoinBegin

func (*Joiner) On

func (j *Joiner) On(model interface{}, field string) db.JoinEnd

func (*Joiner) Sum

func (j *Joiner) Sum(groupFields []string, sumFields []string) db.JoinEnd

type ModelDescriptor

type ModelDescriptor struct {
	Sample     interface{}
	Schema     *schema.Schema
	FieldsJson map[string]*FieldDescriptor
}

func NewModelDescriptor

func NewModelDescriptor(model interface{}, cacheStore *sync.Map, namer schema.Namer) *ModelDescriptor

func (*ModelDescriptor) FieldsReady

func (d *ModelDescriptor) FieldsReady() bool

func (*ModelDescriptor) FindJsonField

func (d *ModelDescriptor) FindJsonField(json string) (*FieldDescriptor, error)

func (*ModelDescriptor) ParseFields

func (d *ModelDescriptor) ParseFields() error

type ModelStore

type ModelStore struct {
	// contains filtered or unexported fields
}
var GlobalModelStore *ModelStore

func NewModelStore

func NewModelStore(global bool) *ModelStore

func (*ModelStore) AllModels

func (m *ModelStore) AllModels() []interface{}

func (*ModelStore) FindDescriptor

func (m *ModelStore) FindDescriptor(name string) *ModelDescriptor

func (*ModelStore) FindModel

func (m *ModelStore) FindModel(name string) interface{}

func (*ModelStore) ParseModelFields

func (m *ModelStore) ParseModelFields(descriptor *ModelDescriptor) error

func (*ModelStore) RegisterModel

func (m *ModelStore) RegisterModel(model interface{})

func (*ModelStore) RegisterModels

func (m *ModelStore) RegisterModels(models []interface{})

type Paginator

type Paginator struct {
	MaxLimit int
}

func (*Paginator) Paginate

func (p *Paginator) Paginate(g *gorm.DB, filter *Filter, paginate ...bool) *gorm.DB

type TransactionHandler

type TransactionHandler func(tx *gorm.DB) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL