xpg

package module
v0.0.0-...-507d0ac Latest Latest
Warning

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

Go to latest
Published: Nov 29, 2019 License: MIT Imports: 10 Imported by: 0

README

xpg

Go Report Card

Обёртка для PostgreSQL

Это не ORM, этот пакет, просто помогает упорядочить структуру и упрощает типовые задачи.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddConnection

func AddConnection(connectionName string, conn *pgx.ConnPool, migrationsPath string) error

AddConnection Добавит существующее подключение в коллекцию

func Close

func Close() error

Close Закроет все подключения к БД

func DB

func DB(connectionName string) *pgx.ConnPool

DB Вернёт нативное подключение к БД

func MigrationsPath

func MigrationsPath(connectionName string) string

MigrationsPath Вернёт путь к директории с миграциями для

func NewConnection

func NewConnection(connectionName string, conf pgx.ConnConfig, maxConnections int, migrationsPath string) error

NewConnection Создаст новое подключение к БД

func SetTimezone

func SetTimezone(connectionName string, location *time.Location) error

SetTimezone Задаст часовой пояс

Types

type Column

type Column struct {
	Name    string
	Type    string
	NotNull bool
	HasDef  bool
	Num     int
}

Column Свойства колонки таблицы

type Connection

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

Connection соединение

func Conn

func Conn(connectionName string) *Connection

Conn Вернёт соединение

func New

func New(tabler Tabler) *Connection

New Вернёт подключение для работы с моделью

func (*Connection) BuildCount

func (c *Connection) BuildCount() (string, []interface{})

BuildCount Вернёт строку запроса и аргументы

func (*Connection) BuildSelect

func (c *Connection) BuildSelect() (string, []interface{})

BuildSelect Вернёт строку запроса и аргументы

func (*Connection) BuildSum

func (c *Connection) BuildSum(column string) (string, []interface{})

BuildSum Вернёт строку запроса и аргументы

func (*Connection) Close

func (c *Connection) Close()

Close Закроет подключение к БД

func (*Connection) Columns

func (c *Connection) Columns() ([]Column, error)

Columns Вернёт список колонок текущей таблицы

func (*Connection) Count

func (c *Connection) Count() (int64, error)

Count Получить количество записей

func (*Connection) Databases

func (c *Connection) Databases() ([]string, error)

Databases Список баз данных

func (*Connection) Delete

func (c *Connection) Delete() (err error)

Delete Удаление записи из БД

func (*Connection) Distinct

func (c *Connection) Distinct(on ...string) *Connection

Distinct Удаление дублей

func (*Connection) EnumValues

func (c *Connection) EnumValues(name string) ([]string, error)

EnumValues Вернёт доступные значения для типа ENUM

func (*Connection) Enums

func (c *Connection) Enums() (map[string][]string, error)

Enums Вернёт доступные перечисления

func (*Connection) Exists

func (c *Connection) Exists() (bool, error)

Exists Проверка наличия записи в базе

func (*Connection) First

func (c *Connection) First() (Tabler, error)

First Получить первую запись

func (*Connection) FullJoin

func (c *Connection) FullJoin(table, alias, condition string) *Connection

FullJoin Присоединит таблицу FULL OUTER JOIN

func (*Connection) GroupBy

func (c *Connection) GroupBy(column string, columns ...string) *Connection

GroupBy Группировка по колонкам

func (*Connection) GroupWhere

func (c *Connection) GroupWhere(f func(c *Connection)) *Connection

GroupWhere Добавит групповое условие WHERE через AND

func (*Connection) Insert

func (c *Connection) Insert(data map[string]interface{}) (id int64, err error)

Insert Вставка записи в БД

func (*Connection) Join

func (c *Connection) Join(table, alias, condition string) *Connection

Join Присоединит таблицу INNER JOIN

func (*Connection) LeftJoin

func (c *Connection) LeftJoin(table, alias, condition string) *Connection

LeftJoin Присоединит таблицу LEFT OUTER JOIN

func (*Connection) Limit

func (c *Connection) Limit(limit int) *Connection

Limit Выбрать limit записей

func (*Connection) Offset

func (c *Connection) Offset(offset int) *Connection

Offset Пропустить offset записей

func (*Connection) OrGroupWhere

func (c *Connection) OrGroupWhere(f func(c *Connection)) *Connection

OrGroupWhere Добавит групповое условие WHERE через OR

func (*Connection) OrWhere

func (c *Connection) OrWhere(column, operator string, value interface{}) *Connection

OrWhere Добавит условие WHERE через OR

func (*Connection) OrWhereBetween

func (c *Connection) OrWhereBetween(column string, from, to interface{}) *Connection

OrWhereBetween Добавит условие WHERE BETWEEN через OR

func (*Connection) OrWhereIn

func (c *Connection) OrWhereIn(column string, values *WhereInValues) *Connection

OrWhereIn Добавит условие WHERE IN через OR

func (*Connection) OrWhereNotIn

func (c *Connection) OrWhereNotIn(column string, values *WhereInValues) *Connection

OrWhereNotIn Добавит условие WHERE NOT IN через OR

func (*Connection) OrWhereRaw

func (c *Connection) OrWhereRaw(sql string, bindings ...interface{}) *Connection

OrWhereRaw Произвольное условие WHERE через OR

func (*Connection) OrderBy

func (c *Connection) OrderBy(column, order string) *Connection

OrderBy Отсортировать по

func (*Connection) OrderByRand

func (c *Connection) OrderByRand() *Connection

OrderByRand Отсортировать в случайном порядке

func (*Connection) OrderByRaw

func (c *Connection) OrderByRaw(orderRaw string) *Connection

OrderByRaw Произвольная сортировка

func (*Connection) Query

func (c *Connection) Query(query string, args ...interface{}) (rows *Rows, err error)

Query запрос к БД

func (*Connection) RightJoin

func (c *Connection) RightJoin(table, alias, condition string) *Connection

RightJoin Присоединит таблицу RIGHT OUTER JOIN

func (*Connection) Select

func (c *Connection) Select() (rows *Rows, err error)

Select Получить записи

func (*Connection) Sum

func (c *Connection) Sum(column string) (float64, error)

Sum Получить сумму записей

func (*Connection) Tables

func (c *Connection) Tables() ([]string, error)

Tables Вернёт список таблиц в базе данных

func (*Connection) Union

func (c *Connection) Union(all bool, queries ...*Connection) *Connection

Union Объединение запросов

func (*Connection) Update

func (c *Connection) Update(data map[string]interface{}) (err error)

Update Изменение записи в БД

func (*Connection) Where

func (c *Connection) Where(column, operator string, value interface{}) *Connection

Where Добавит условие WHERE через AND

func (*Connection) WhereBetween

func (c *Connection) WhereBetween(column string, from, to interface{}) *Connection

WhereBetween Добавит условие WHERE BETWEEN через AND

func (*Connection) WhereIn

func (c *Connection) WhereIn(column string, values *WhereInValues) *Connection

WhereIn Добавит условие WHERE IN через AND

func (*Connection) WhereNotIn

func (c *Connection) WhereNotIn(column string, values *WhereInValues) *Connection

WhereNotIn Добавит условие WHERE NOT IN через AND

func (*Connection) WhereRaw

func (c *Connection) WhereRaw(sql string, bindings ...interface{}) *Connection

WhereRaw Произвольное условие WHERE через AND

func (*Connection) Write

func (c *Connection) Write(data map[string]interface{}) (id int64, err error)

Write Запись в БД

type Model

type Model struct {
	ID int64 `json:"id"`
	//...
	CreatedAt xpgtypes.NullTime `json:"created_at"`
	UpdatedAt xpgtypes.NullTime `json:"updated_at"`
}

Model базовая модель соответствующая минимально требуемой структуре Tabler

func (Model) Columns

func (m Model) Columns() string

Columns Список полей, которые необходимо получать запросом SELECT

func (*Model) Connection

func (m *Model) Connection() (name string)

Connection Возвращает название подключения к БД

func (*Model) Delete

func (m *Model) Delete() (err error)

Delete Удаление записи из БД

func (*Model) Save

func (m *Model) Save() (err error)

Save Сохранение новой/измененной структуры в БД

func (*Model) Scan

func (m *Model) Scan(rows *pgx.Rows) (tabler Tabler, err error)

Scan Реализация чтения строки из результата запроса

func (Model) Table

func (m Model) Table() string

Table Возвращает название таблицы в базе данных

type Rows

type Rows struct {
	*pgx.Rows
	// contains filtered or unexported fields
}

Rows Интерфейс для хранения результата запроса к БД

func (*Rows) Fetch

func (r *Rows) Fetch() <-chan Tabler

Fetch Метод для перебора for row := range res.Fetch() {

func (*Rows) Get

func (r *Rows) Get() (Tabler, error)

Get Получение очередной строки

type Tabler

type Tabler interface {
	Table() string
	Columns() string
	Connection() (name string)
	Scan(rows *pgx.Rows) (tabler Tabler, err error)
	Save() (err error)
	Delete() (err error)
}

Tabler интерфейс модели

type WhereInValues

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

WhereInValues Адаптор для передачи слайсов, в запрос WHERE IN

func (*WhereInValues) Int

func (w *WhereInValues) Int(in ...int) *WhereInValues

Int Загрузка ...int

func (*WhereInValues) Int64

func (w *WhereInValues) Int64(in ...int64) *WhereInValues

Int64 Загрузка ...int64

func (*WhereInValues) Interface

func (w *WhereInValues) Interface(in ...interface{}) *WhereInValues

Interface Загрузка ...interface{}

func (*WhereInValues) Sql

func (w *WhereInValues) Sql(args []interface{}) (string, []interface{})

Sql Вернёт подготовленную строку запроса и дополненный слайс аргументов

func (*WhereInValues) String

func (w *WhereInValues) String(in ...string) *WhereInValues

String Загрузка ...string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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