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: 16 Imported by: 0

Documentation

Overview

Package postgres contains Key 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 New

func New(db Database) auth.KeyRepository

New instantiates a PostgreSQL implementation of key repository.

func NewOrgRepo

func NewOrgRepo(db Database) auth.OrgRepository

NewOrgRepo instantiates a PostgreSQL implementation of org repository.

func NewRolesRepo

func NewRolesRepo(db Database) auth.RolesRepository

NewRolesRepo instantiates a PostgreSQL implementation of roles 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
	QueryxContext(context.Context, string, ...interface{}) (*sqlx.Rows, error)
	NamedQueryContext(context.Context, string, interface{}) (*sqlx.Rows, error)
	BeginTxx(ctx context.Context, opts *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