database

package
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2022 License: MIT Imports: 20 Imported by: 0

Documentation

Overview

Content managed by Project Forge, see [projectforge.md] for details.

Content managed by Project Forge, see [projectforge.md] for details.

Content managed by Project Forge, see [projectforge.md] for details.

Content managed by Project Forge, see [projectforge.md] for details.

Content managed by Project Forge, see [projectforge.md] for details.

Content managed by Project Forge, see [projectforge.md] for details.

Content managed by Project Forge, see [projectforge.md] for details.

Content managed by Project Forge, see [projectforge.md] for details.

Content managed by Project Forge, see [projectforge.md] for details.

Content managed by Project Forge, see [projectforge.md] for details.

Index

Constants

View Source
const SQLiteEnabled = true

Variables

This section is empty.

Functions

func ArrayToString

func ArrayToString(a []string) string

func RegistryKeys added in v0.2.1

func RegistryKeys() []string

func SQLDelete

func SQLDelete(table string, where string) string

func SQLInClause

func SQLInClause(column string, numParams int, offset int) string

func SQLInsert

func SQLInsert(table string, columns []string, rows int, placeholder string) string

func SQLInsertReturning

func SQLInsertReturning(table string, columns []string, rows int, returning []string, placeholder string) string

func SQLSelect

func SQLSelect(columns string, tables string, where string, orderBy string, limit int, offset int) string

func SQLSelectGrouped

func SQLSelectGrouped(columns string, tables string, where string, groupBy string, orderBy string, limit int, offset int) string

func SQLSelectSimple

func SQLSelectSimple(columns string, tables string, where ...string) string

func SQLUpdate

func SQLUpdate(table string, columns []string, where string, placeholder string) string

func SQLUpdateReturning

func SQLUpdateReturning(table string, columns []string, where string, returned []string, placeholder string) string

func SQLUpsert

func SQLUpsert(table string, columns []string, rows int, conflicts []string, updates []string, placeholder string) string

func StringToArray

func StringToArray(s string) []string

Types

type DBType

type DBType struct {
	Key               string `json:"key"`
	Title             string `json:"title"`
	Quote             string `json:"-"`
	Placeholder       string `json:"-"`
	SupportsReturning bool   `json:"-"`
}

type MySQLParams

type MySQLParams struct {
	Host     string `json:"host"`
	Port     int    `json:"port,omitempty"`
	Username string `json:"username"`
	Password string `json:"password,omitempty"`
	Database string `json:"database,omitempty"`
	Schema   string `json:"schema,omitempty"`
	MaxConns int    `json:"maxConns,omitempty"`
	Debug    bool   `json:"debug,omitempty"`
}

func MySQLParamsFromEnv

func MySQLParamsFromEnv(key string, defaultUser string, prefix string) *MySQLParams

type PostgresParams

type PostgresParams struct {
	Host     string `json:"host"`
	Port     int    `json:"port,omitempty"`
	Username string `json:"username"`
	Password string `json:"password,omitempty"`
	Database string `json:"database,omitempty"`
	Schema   string `json:"schema,omitempty"`
	MaxConns int    `json:"maxConns,omitempty"`
	Debug    bool   `json:"debug,omitempty"`
}

func PostgresParamsFromEnv

func PostgresParamsFromEnv(key string, defaultUser string, prefix string) *PostgresParams

type PostgresServiceParams

type PostgresServiceParams struct {
	Host        string `json:"host"`
	Port        int    `json:"port,omitempty"`
	Schema      string `json:"schema,omitempty"`
	Username    string `json:"username"`
	Password    string `json:"password,omitempty"`
	Database    string `json:"database,omitempty"`
	SSLMode     string `json:"sslmode,omitempty"`
	SSLKey      string `json:"sslkey,omitempty"`
	SSLCert     string `json:"sslcert,omitempty"`
	SSLRootCert string `json:"sslrootcert,omitempty"`
}

func PostgresParamsFromService

func PostgresParamsFromService() (*PostgresServiceParams, error)

PostgresParamsFromService parses connection service config from DB_SERVICE env var from file located at DB_SERVICEFILE. If DB_SERVICEFILE is not provided, it searches for the pg service conf file in home directory.

type SQLiteParams

type SQLiteParams struct {
	File   string `json:"file"`
	Schema string `json:"schema,omitempty"`
	Debug  bool   `json:"debug,omitempty"`
}

func SQLiteParamsFromEnv

func SQLiteParamsFromEnv(key string, defaultUser string, prefix string) *SQLiteParams

type Service

type Service struct {
	Key          string  `json:"key"`
	DatabaseName string  `json:"database,omitempty"`
	SchemaName   string  `json:"schema,omitempty"`
	Username     string  `json:"username,omitempty"`
	Debug        bool    `json:"debug,omitempty"`
	Type         *DBType `json:"type"`
	ReadOnly     bool    `json:"readonly,omitempty"`
	// contains filtered or unexported fields
}

func NewService

func NewService(typ *DBType, key string, dbName string, schName string, username string, debug bool, db *sqlx.DB, logger *zap.SugaredLogger) (*Service, error)

func OpenDefaultMySQL

func OpenDefaultMySQL(logger *zap.SugaredLogger) (*Service, error)

func OpenDefaultPostgres

func OpenDefaultPostgres(ctx context.Context, logger *zap.SugaredLogger) (*Service, error)

func OpenDefaultSQLite

func OpenDefaultSQLite(ctx context.Context, logger *zap.SugaredLogger) (*Service, error)

func OpenMySQLDatabase

func OpenMySQLDatabase(ctx context.Context, key string, params *MySQLParams, logger *zap.SugaredLogger) (*Service, error)

func OpenPostgres

func OpenPostgres(ctx context.Context, key string, prefix string, logger *zap.SugaredLogger) (*Service, error)

func OpenPostgresDatabase

func OpenPostgresDatabase(ctx context.Context, key string, params *PostgresParams, logger *zap.SugaredLogger) (*Service, error)

func OpenPostgresDatabaseSSL

func OpenPostgresDatabaseSSL(ctx context.Context, key string, ep *PostgresParams, sp *PostgresServiceParams, logger *zap.SugaredLogger) (*Service, error)

func OpenSQLite

func OpenSQLite(ctx context.Context, prefix string, logger *zap.SugaredLogger) (*Service, error)

func OpenSQLiteDatabase

func OpenSQLiteDatabase(ctx context.Context, key string, params *SQLiteParams, logger *zap.SugaredLogger) (*Service, error)

func RegistryGet added in v0.2.1

func RegistryGet(key string) (*Service, error)

func (*Service) Close

func (s *Service) Close() error

func (*Service) Conn

func (s *Service) Conn(ctx context.Context) (*sql.Conn, error)

func (*Service) Delete

func (s *Service) Delete(ctx context.Context, q string, tx *sqlx.Tx, expected int, logger *zap.SugaredLogger, values ...any) (int, error)

func (*Service) DeleteOne

func (s *Service) DeleteOne(ctx context.Context, q string, tx *sqlx.Tx, logger *zap.SugaredLogger, values ...any) error

func (*Service) Exec

func (s *Service) Exec(ctx context.Context, q string, tx *sqlx.Tx, expected int, logger *zap.SugaredLogger, values ...any) (int, error)

func (*Service) Get

func (s *Service) Get(ctx context.Context, dto any, q string, tx *sqlx.Tx, logger *zap.SugaredLogger, values ...any) error

func (*Service) Healthcheck

func (s *Service) Healthcheck(dbName string, db *sqlx.DB) error

func (*Service) Insert

func (s *Service) Insert(ctx context.Context, q string, tx *sqlx.Tx, logger *zap.SugaredLogger, values ...any) error

func (*Service) Query

func (s *Service) Query(ctx context.Context, q string, tx *sqlx.Tx, logger *zap.SugaredLogger, values ...any) (*sqlx.Rows, error)

func (*Service) Query2DArray

func (s *Service) Query2DArray(ctx context.Context, q string, tx *sqlx.Tx, logger *zap.SugaredLogger, values ...any) ([][]any, error)

func (*Service) QueryKVMap

func (s *Service) QueryKVMap(ctx context.Context, q string, tx *sqlx.Tx, logger *zap.SugaredLogger, values ...any) (util.ValueMap, error)

func (*Service) QueryRows

func (s *Service) QueryRows(ctx context.Context, q string, tx *sqlx.Tx, logger *zap.SugaredLogger, values ...any) ([]util.ValueMap, error)

func (*Service) QuerySingleRow

func (s *Service) QuerySingleRow(ctx context.Context, q string, tx *sqlx.Tx, logger *zap.SugaredLogger, values ...any) (util.ValueMap, error)

func (*Service) Select

func (s *Service) Select(ctx context.Context, dest any, q string, tx *sqlx.Tx, logger *zap.SugaredLogger, values ...any) error

func (*Service) SingleBool added in v0.2.1

func (s *Service) SingleBool(ctx context.Context, q string, tx *sqlx.Tx, logger *zap.SugaredLogger, values ...any) (bool, error)

func (*Service) SingleInt

func (s *Service) SingleInt(ctx context.Context, q string, tx *sqlx.Tx, logger *zap.SugaredLogger, values ...any) (int64, error)

func (*Service) StartTransaction

func (s *Service) StartTransaction(logger *zap.SugaredLogger) (*sqlx.Tx, error)

func (*Service) Stats

func (s *Service) Stats() sql.DBStats

func (*Service) Update

func (s *Service) Update(ctx context.Context, q string, tx *sqlx.Tx, expected int, logger *zap.SugaredLogger, values ...any) (int, error)

func (*Service) UpdateOne

func (s *Service) UpdateOne(ctx context.Context, q string, tx *sqlx.Tx, logger *zap.SugaredLogger, values ...any) error

Jump to

Keyboard shortcuts

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