database

package
v0.2.4 Latest Latest
Warning

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

Go to latest
Published: May 14, 2022 License: MIT Imports: 19 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 util.Logger) (*Service, error)

func OpenDefaultMySQL

func OpenDefaultMySQL(logger util.Logger) (*Service, error)

func OpenDefaultPostgres

func OpenDefaultPostgres(ctx context.Context, logger util.Logger) (*Service, error)

func OpenDefaultSQLite

func OpenDefaultSQLite(ctx context.Context, logger util.Logger) (*Service, error)

func OpenMySQLDatabase

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

func OpenPostgres

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

func OpenPostgresDatabase

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

func OpenPostgresDatabaseSSL

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

func OpenSQLite

func OpenSQLite(ctx context.Context, prefix string, logger util.Logger) (*Service, error)

func OpenSQLiteDatabase

func OpenSQLiteDatabase(ctx context.Context, key string, params *SQLiteParams, logger util.Logger) (*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 util.Logger, values ...any) (int, error)

func (*Service) DeleteOne

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

func (*Service) Exec

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

func (*Service) Get

func (s *Service) Get(ctx context.Context, dto any, q string, tx *sqlx.Tx, logger util.Logger, 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 util.Logger, values ...any) error

func (*Service) Query

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

func (*Service) Query2DArray

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

func (*Service) QueryKVMap

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

func (*Service) QueryRows

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

func (*Service) QuerySingleRow

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

func (*Service) Select

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

func (*Service) SingleBool added in v0.2.1

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

func (*Service) SingleInt

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

func (*Service) StartTransaction

func (s *Service) StartTransaction(logger util.Logger) (*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 util.Logger, values ...any) (int, error)

func (*Service) UpdateOne

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

Jump to

Keyboard shortcuts

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