postgres

package
v0.23.2 Latest Latest
Warning

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

Go to latest
Published: Sep 10, 2024 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

Package postgres contains repository implementations using PostgreSQL as the underlying database.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Connect

func Connect(cfg Config) (*sqlx.DB, error)

Connect creates a connection to the PostgreSQL instance and applies any unapplied database migrations. A non-nil error is returned to indicate failure.

func NewChannelRepository

func NewChannelRepository(db Database) things.ChannelRepository

NewChannelRepository instantiates a PostgreSQL implementation of channel repository.

func NewGroupRepository

func NewGroupRepository(db Database) things.GroupRepository

NewGroupRepository instantiates a PostgreSQL implementation of group repository.

func NewRolesRepository

func NewRolesRepository(db Database) things.RolesRepository

NewRolesRepository instantiates a PostgreSQL implementation of policies repository.

func NewThingRepository

func NewThingRepository(db Database) things.ThingRepository

NewThingRepository instantiates a PostgreSQL implementation of thing repository.

Types

type Config

type Config struct {
	Host        string
	Port        string
	User        string
	Pass        string
	Name        string
	SSLMode     string
	SSLCert     string
	SSLKey      string
	SSLRootCert string
}

Config defines the options that are used when connecting to a PostgreSQL instance

type Database

type Database interface {
	NamedExecContext(context.Context, string, interface{}) (sql.Result, error)
	QueryRowxContext(context.Context, string, ...interface{}) *sqlx.Row
	NamedQueryContext(context.Context, string, interface{}) (*sqlx.Rows, error)
	GetContext(context.Context, interface{}, string, ...interface{}) error
	BeginTxx(context.Context, *sql.TxOptions) (*sqlx.Tx, error)
}

Database provides a database interface

func NewDatabase

func NewDatabase(db *sqlx.DB) Database

NewDatabase creates a ThingDatabase instance

Jump to

Keyboard shortcuts

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