db

package
v1.9.3 Latest Latest
Warning

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

Go to latest
Published: Sep 19, 2025 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

type Client struct {
	*sqlx.DB
	// contains filtered or unexported fields
}

func Open added in v1.5.0

func Open(ctx context.Context, cfg Config, opts ...Option) (*Client, error)

nolint:mnd

func (*Client) Exec

func (db *Client) Exec(ctx context.Context, query string, args ...any) (sql.Result, error)

func (*Client) ExecNamed

func (db *Client) ExecNamed(ctx context.Context, query string, arg any) (sql.Result, error)

func (*Client) IsReadOnly added in v1.8.3

func (db *Client) IsReadOnly(ctx context.Context) (bool, error)

func (*Client) RunInTransaction

func (db *Client) RunInTransaction(ctx context.Context, txFunc TxFunc, opts ...TxOption) (err error)

func (*Client) Select

func (db *Client) Select(ctx context.Context, ptr any, query string, args ...any) error

func (*Client) SelectRow

func (db *Client) SelectRow(ctx context.Context, ptr any, query string, args ...any) error

type Config

type Config struct {
	Host        string            `validate:"required" schema:"Хост"`
	Port        int               `validate:"required" schema:"Порт"`
	Database    string            `validate:"required" schema:"База данных"`
	Username    string            `schema:"Логин,secret"`
	Password    string            `schema:"Пароль,secret"`
	Schema      string            `schema:"Схема"`
	MaxOpenConn int               `schema:"Максимально количество соединений"`
	Params      map[string]string `schema:"Дополнительные параметры подключения"`
}

func (Config) ConnStr

func (c Config) ConnStr() string

type DB

type DB interface {
	Select(ctx context.Context, ptr any, query string, args ...any) error
	SelectRow(ctx context.Context, ptr any, query string, args ...any) error
	Exec(ctx context.Context, query string, args ...any) (sql.Result, error)
	ExecNamed(ctx context.Context, query string, arg any) (sql.Result, error)
}

type MigrationRunner

type MigrationRunner interface {
	Run(ctx context.Context, db *sql.DB, gooseOpts ...goose.ProviderOption) error
}

type Option

type Option func(cli *Client)

func WithCreateSchema added in v1.8.3

func WithCreateSchema(createSchema bool) Option

func WithMigrationRunner

func WithMigrationRunner(migrationDir string, logger log.Logger) Option

func WithQueryTracer added in v1.8.3

func WithQueryTracer(tracers ...pgx.QueryTracer) Option

type Transactional

type Transactional interface {
	RunInTransaction(ctx context.Context, txFunc TxFunc, opts ...TxOption) error
}

type Tx

type Tx struct {
	*sqlx.Tx
}

func (*Tx) Exec

func (t *Tx) Exec(ctx context.Context, query string, args ...any) (sql.Result, error)

func (*Tx) ExecNamed

func (t *Tx) ExecNamed(ctx context.Context, query string, arg any) (sql.Result, error)

func (*Tx) Select

func (t *Tx) Select(ctx context.Context, ptr any, query string, args ...any) error

func (*Tx) SelectRow

func (t *Tx) SelectRow(ctx context.Context, ptr any, query string, args ...any) error

type TxFunc

type TxFunc func(ctx context.Context, tx *Tx) error

type TxOption

type TxOption func(options *txOptions)

func IsolationLevel

func IsolationLevel(level sql.IsolationLevel) TxOption

func ReadOnly

func ReadOnly() TxOption

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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