db

package
v0.0.0-...-49a80da Latest Latest
Warning

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

Go to latest
Published: Oct 29, 2025 License: Apache-2.0 Imports: 19 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BulkInsert

func BulkInsert[T Table](executor gorp.SqlExecutor, db DB, allObjs ...T) error

Bulk insert objects into the database, using an executor which can be a transaction or a database connection itself.

Note: This function does NOT support auto-incrementing primary keys.

func ReplaceAll

func ReplaceAll[T Table](db DB, objs ...T) error

Replace all old objects of a table with new objects.

Types

type Connector

type Connector struct{ client.Client }

Kubernetes connector which initializes the database connection from a secret.

func (Connector) FromSecretRef

func (c Connector) FromSecretRef(ctx context.Context, ref corev1.SecretReference) (*DB, error)

Create a new database client with authentication from the provided secret reference.

type DB

type DB struct {
	*gorp.DbMap
	// contains filtered or unexported fields
}

Wrapper around gorp.DbMap that adds some convenience functions.

func NewPostgresDB

func NewPostgresDB(
	ctx context.Context,
	c conf.DBConfig,
	registry *monitoring.Registry,
	monitor Monitor,
) DB

Create a new postgres database and wait until it is connected.

func (*DB) AddTable

func (d *DB) AddTable(t Table) *gorp.TableMap

Adds a Model table to the database.

func (*DB) CheckLivenessPeriodically

func (d *DB) CheckLivenessPeriodically(ctx context.Context)

Check periodically if the database is alive. If not, panic.

func (*DB) Close

func (d *DB) Close()

Convenience function to close the database connection.

func (*DB) CreateTable

func (d *DB) CreateTable(table ...*gorp.TableMap) error

Adds missing functionality to gorp.DbMap which creates one table.

func (*DB) SelectTimed

func (d *DB) SelectTimed(group string, i any, query string, args ...any) ([]any, error)

Executes a select query while monitoring its execution time.

func (*DB) TableExists

func (d *DB) TableExists(t Table) bool

Check if a table exists in the database.

type Monitor

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

func NewDBMonitor

func NewDBMonitor(registry *monitoring.Registry) Monitor

func NewUnregisteredDBMonitor

func NewUnregisteredDBMonitor() Monitor

func (*Monitor) Collect

func (m *Monitor) Collect(ch chan<- prometheus.Metric)

func (*Monitor) Describe

func (m *Monitor) Describe(ch chan<- *prometheus.Desc)

type Table

type Table interface {
	TableName() string
	// Map of index name to column names.
	Indexes() map[string][]string
}

Jump to

Keyboard shortcuts

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