Documentation
¶
Overview ¶
Package postgres is a thin database resource adapter.
It uses database/sql (or any Pinger) via injection — the ShiftLock module does not require pgx. Fencing is advertised only when a Fencer is supplied.
Index ¶
- type Config
- type Drainer
- type Fencer
- type Pinger
- type Resource
- func (r *Resource) Capabilities() resource.ResourceCapabilities
- func (r *Resource) CheckFence(ctx context.Context, token uint64) error
- func (r *Resource) Describe() resource.Description
- func (r *Resource) Drain(ctx context.Context) error
- func (r *Resource) Health(ctx context.Context) resource.ResourceHealth
- func (r *Resource) ID() resource.ResourceID
- func (r *Resource) Kind() resource.Kind
- func (r *Resource) Ready(ctx context.Context) error
- func (r *Resource) SchemaVersion(ctx context.Context) (string, error)
- func (r *Resource) Snapshot(ctx context.Context) (map[string]string, error)
- type SchemaVersioner
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
ID resource.ResourceID
DB Pinger // typically *sql.DB
DisplayName string
Schema SchemaVersioner
Fencer Fencer
Drainer Drainer
// PingTimeout bounds Health ping; zero uses 3s.
PingTimeout time.Duration
}
Config configures the adapter.
type Fencer ¶
Fencer optionally enforces fencing tokens on mutations. When nil, Capabilities.SupportsFencing is false.
type Resource ¶
type Resource struct {
// contains filtered or unexported fields
}
Resource implements resource.Resource for PostgreSQL (or any SQL DB).
func (*Resource) Capabilities ¶
func (r *Resource) Capabilities() resource.ResourceCapabilities
Capabilities never advertises fencing unless a Fencer is configured.
func (*Resource) CheckFence ¶
CheckFence validates a fencing token when a Fencer is configured.
func (*Resource) Describe ¶
func (r *Resource) Describe() resource.Description
Describe implements resource.Resource.
func (*Resource) Health ¶
func (r *Resource) Health(ctx context.Context) resource.ResourceHealth
Health pings the database and reports connectivity.
func (*Resource) SchemaVersion ¶
SchemaVersion returns the hooked schema version, if configured.