postgres

package
v3.9.0 Latest Latest
Warning

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

Go to latest
Published: Sep 13, 2022 License: Apache-2.0 Imports: 16 Imported by: 0

README

Postgres plugin

This module implements a Postgres implementation of the micro store interface.

Implementation notes

Concepts

We maintain a single connection to the Postgres server. Due to the way connections are handled this means that all micro "databases" and "tables" are stored under a single Postgres database as specified in the connection string (https://www.postgresql.org/docs/8.1/ddl-schemas.html). The mapping of micro to Postgres concepts is:

  • micro database => Postgres schema
  • micro table => Postgres table
Expiry

Expiry is managed by an expiry column in the table. A record's expiry is specified in the column and when a record is read the expiry field is first checked, only returning the record if its still valid otherwise it's deleted. A maintenance loop also periodically runs to delete any rows that have expired.

Documentation

Overview

Package postgres implements the postgres store

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultDatabase = "micro"
	DefaultTable    = "micro"
	ErrNoConnection = errors.New("Database connection not initialised")
)

DefaultDatabase is the namespace that the sql store will use if no namespace is provided.

Functions

func NewStore

func NewStore(opts ...store.Option) store.Store

NewStore returns a new micro Store backed by sql

Types

type Metadata

type Metadata map[string]interface{}

https://github.com/upper/db/blob/master/postgresql/custom_types.go#L43

func (*Metadata) Scan

func (m *Metadata) Scan(src interface{}) error

Scan satisfies the sql.Scanner interface.

func (Metadata) Value

func (m Metadata) Value() (driver.Value, error)

Value satisfies the driver.Valuer interface.

Directories

Path Synopsis
Package pgx implements the postgres store with pgx driver
Package pgx implements the postgres store with pgx driver

Jump to

Keyboard shortcuts

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