postgres

package
v0.0.0-...-31b4c3b Latest Latest
Warning

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

Go to latest
Published: May 15, 2024 License: GPL-3.0 Imports: 5 Imported by: 0

README

Структура Postgres содержащая пул соединенйи к Postgres используя библиотеку pgx

New

Подключаемся к Postgres и сохраняем пул соединений внутри структуры

Close

Закрываем соединение

Pool

Принимает контекст и возвращает транзакцию, если она встроена в передаваемый контекст, иначе пул соединений. Возвращается интерфейс, содержащий методы доступные как у транзакции так и у пула соединений

WithTx

Принимает контекст и функцию принимающую контекст, начинает транзакцию и внедряет ее в новый контекст, который передается функции принятой в качестве параметра. Таким образом функция получит контекст, в который внедрена транзакция. Таким образом когда вызывающий код будет получать пул соединений функцией Pool он получит транзакцию. То есть внутри передаваемой функции можно вызвать несколько операций, которые будут работать в одной транзакции.

Documentation

Overview

Package postgres helps to connect to postgres and provide transaction helpers.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DB

type DB interface {
	Exec(ctx context.Context, sql string, arguments ...any) (commandTag pgconn.CommandTag, err error)
	Query(ctx context.Context, sql string, args ...any) (pgx.Rows, error)
	QueryRow(ctx context.Context, sql string, args ...any) pgx.Row
}

DB - интерфейс, содержащий методы имеющиеся и в пуле соединений и в транзакции Таким образом мы работаем с этим интерфейсом для выполнения операций с БД, но не знаем выполняем действия в транзакции или нет, поскольку это не ответственность кода выполняющего запросы, а уровня выше который решает для каких операций необходимы транзакции.

type Postgres

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

func New

func New(uri string) (*Postgres, error)

New - Подключение к БД создание пула соединений.

func (*Postgres) Close

func (pg *Postgres) Close()

Close - Закрытие соединения.

func (*Postgres) Pool

func (pg *Postgres) Pool(ctx context.Context) DB

Pool - Принимает контекст и возвращает транзакцию, если она встроена в передаваемый контекст, иначе пул соединений. Возвращается интерфейс, содержащий методы доступные как у транзакции так и у пула соединений.

func (*Postgres) WithTx

func (pg *Postgres) WithTx(ctx context.Context, fn func(context.Context) error) error

WithTx - Принимает контекст и функцию принимающую контекст, начинает транзакцию и внедряет ее в новый контекст, который передается функции принятой в качестве параметра. Таким образом функция получит контекст, в который внедрена транзакция. Таким образом когда вызывающий код будет получать пул соединений функцией Pool он получит транзакцию. То есть внутри передаваемой функции можно вызвать несколько операций, которые будут работать в одной транзакции.

Jump to

Keyboard shortcuts

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