zdb

package
v0.18.3 Latest Latest
Warning

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

Go to latest
Published: Apr 19, 2024 License: Apache-2.0 Imports: 12 Imported by: 0

README

zdatabase Package

Overview

The zdatabase package serves as an abstraction layer for database interactions within Golang applications. Using GORM as a foundation, it provides a more straightforward and extensible interface for database operations.

Table of Contents

  1. Features
  2. Installation
  3. Usage
  4. Configuration

Features

  • Common Interface: A unified API for different database operations.
  • Extensible: Connector mechanism to add support for additional database types.
  • Robustness: In-built logging and error-handling features.
  • Retry Mechanism: Automatic retries for failed database connections.
  • Mocks: Provides mock implementations for DBConnector and ZDatabase interfaces, making it straightforward to unit test the package components without setting up actual database connections

Installation

```bash go get github.com/zondax/golem/pkg/zdatabase ```

Usage

Here's a quick example demonstrating how to create a new database instance.

```go import ( "github.com/zondax/golem/pkg/zdatabase" "github.com/zondax/golem/pkg/zdatabase/zdbconfig" )

func main() { config := &zdbconfig.Config{ // Connection settings }

db, err := zdatabase.NewInstance(zdbConnector.DBTypeClickhouse, config)
if err != nil {
    panic(err)
}

// Perform operations

} ```

Configuration

The zdatabase package can be configured through the zdbconfig package. Refer to Configuration Documentation for more details.

Support

  • clickhouse
  • postgresql

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func SetupAndMonitorDBMetrics added in v0.10.2

func SetupAndMonitorDBMetrics(appName string, metricsServer metrics.TaskMetrics, db ZDatabase, updateInterval time.Duration) []error

Types

type MockDBConnector

type MockDBConnector struct {
	mock.Mock
}

func (*MockDBConnector) Connect

func (m *MockDBConnector) Connect(config *zdbconfig.Config) (*gorm.DB, error)

func (*MockDBConnector) NewInstance

func (m *MockDBConnector) NewInstance(dbType string, config *zdbconfig.Config) (ZDatabase, error)

func (*MockDBConnector) VerifyConnection

func (m *MockDBConnector) VerifyConnection(db *gorm.DB) error

type MockZDatabase

type MockZDatabase struct {
	mock.Mock
}

func (*MockZDatabase) Clauses

func (m *MockZDatabase) Clauses(conds ...clause.Expression) ZDatabase

func (*MockZDatabase) Count added in v0.8.4

func (m *MockZDatabase) Count(count *int64) ZDatabase

func (*MockZDatabase) Create

func (m *MockZDatabase) Create(value interface{}) ZDatabase

func (*MockZDatabase) Delete

func (m *MockZDatabase) Delete(value interface{}, conds ...interface{}) ZDatabase

func (*MockZDatabase) Distinct added in v0.8.2

func (m *MockZDatabase) Distinct(params ...interface{}) ZDatabase

func (*MockZDatabase) Error

func (m *MockZDatabase) Error() error

func (*MockZDatabase) Exec

func (m *MockZDatabase) Exec(sql string, values ...interface{}) ZDatabase

func (*MockZDatabase) Find

func (m *MockZDatabase) Find(dest interface{}, conds ...interface{}) ZDatabase

func (*MockZDatabase) GetDBStats added in v0.10.2

func (m *MockZDatabase) GetDBStats() (sql.DBStats, error)

func (*MockZDatabase) GetDbConnection

func (m *MockZDatabase) GetDbConnection() *gorm.DB

func (*MockZDatabase) Group added in v0.8.2

func (m *MockZDatabase) Group(name string) ZDatabase

func (*MockZDatabase) Joins added in v0.8.6

func (m *MockZDatabase) Joins(query string, values ...interface{}) ZDatabase

func (*MockZDatabase) Limit added in v0.7.3

func (m *MockZDatabase) Limit(limit int) ZDatabase

func (*MockZDatabase) Offset added in v0.8.2

func (m *MockZDatabase) Offset(offset int) ZDatabase

func (*MockZDatabase) Order added in v0.8.2

func (m *MockZDatabase) Order(value interface{}) ZDatabase

func (*MockZDatabase) Raw

func (m *MockZDatabase) Raw(sql string, values ...interface{}) ZDatabase

func (*MockZDatabase) Rows

func (m *MockZDatabase) Rows() (*sql.Rows, error)

func (*MockZDatabase) RowsAffected

func (m *MockZDatabase) RowsAffected() int64

func (*MockZDatabase) Scan

func (m *MockZDatabase) Scan(dest interface{}) ZDatabase

func (*MockZDatabase) ScanRows

func (m *MockZDatabase) ScanRows(rows *sql.Rows, result interface{}) error

func (*MockZDatabase) Scopes added in v0.8.2

func (m *MockZDatabase) Scopes(funcs ...func(ZDatabase) ZDatabase) ZDatabase

func (*MockZDatabase) Select added in v0.7.3

func (m *MockZDatabase) Select(query interface{}, values ...interface{}) ZDatabase

func (*MockZDatabase) Table

func (m *MockZDatabase) Table(name string, args ...interface{}) ZDatabase

func (*MockZDatabase) Transaction

func (m *MockZDatabase) Transaction(fc func(tx ZDatabase) error, opts ...*sql.TxOptions) (err error)

func (*MockZDatabase) UnionAll added in v0.8.6

func (m *MockZDatabase) UnionAll(subQuery1 ZDatabase, subQuery2 ZDatabase) ZDatabase

func (*MockZDatabase) UnionDistinct added in v0.8.6

func (m *MockZDatabase) UnionDistinct(subQuery1 ZDatabase, subQuery2 ZDatabase) ZDatabase

func (*MockZDatabase) Where added in v0.7.3

func (m *MockZDatabase) Where(query interface{}, values ...interface{}) ZDatabase

type ZDatabase

type ZDatabase interface {
	Find(out interface{}, where ...interface{}) ZDatabase
	Scan(dest interface{}) ZDatabase
	Rows() (*sql.Rows, error)
	ScanRows(rows *sql.Rows, result interface{}) error
	Select(query interface{}, args ...interface{}) ZDatabase
	Where(query interface{}, args ...interface{}) ZDatabase
	Joins(query string, args ...interface{}) ZDatabase
	UnionAll(subQuery1 ZDatabase, subQuery2 ZDatabase) ZDatabase
	UnionDistinct(subQuery1 ZDatabase, subQuery2 ZDatabase) ZDatabase
	Limit(limit int) ZDatabase
	Offset(offset int) ZDatabase
	Order(value interface{}) ZDatabase
	Distinct(args ...interface{}) ZDatabase
	Count(count *int64) ZDatabase
	Group(name string) ZDatabase
	Create(value interface{}) ZDatabase
	Delete(value interface{}, where ...interface{}) ZDatabase
	Raw(sql string, values ...interface{}) ZDatabase
	Exec(sql string, values ...interface{}) ZDatabase
	Table(name string, args ...interface{}) ZDatabase
	Transaction(fc func(tx ZDatabase) error, opts ...*sql.TxOptions) (err error)
	Clauses(conds ...clause.Expression) ZDatabase
	Error() error
	Scopes(funcs ...func(ZDatabase) ZDatabase) ZDatabase
	RowsAffected() int64
	GetDbConnection() *gorm.DB
	GetDBStats() (sql.DBStats, error)
}

func NewInstance

func NewInstance(dbType string, config *zdbconfig.Config) (ZDatabase, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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