sqlcon

package
v0.0.27 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2018 License: Apache-2.0 Imports: 20 Imported by: 87

Documentation

Overview

Package sqlcon provides helpers for dealing with SQL connectivity.

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrUniqueViolation is returned when^a SQL INSERT / UPDATE command returns a conflict.
	ErrUniqueViolation = &herodot.DefaultError{
		CodeField:   http.StatusConflict,
		StatusField: http.StatusText(http.StatusConflict),
		ErrorField:  "Unable to insert or update resource because a resource with that value exists already",
	}
	// ErrNoRows is returned when a SQL SELECT statement returns no rows.
	ErrNoRows = &herodot.DefaultError{
		CodeField:   http.StatusNotFound,
		StatusField: http.StatusText(http.StatusNotFound),
		ErrorField:  "Unable to locate the resource",
	}
)

Functions

func HandleError

func HandleError(err error) error

HandleError returns the right sqlcon.Err* depending on the input error.

func HelpMessage

func HelpMessage() string

HelpMessage returns a string explaining how to set up SQL using environment variables.

func MigratorSQLCmd

func MigratorSQLCmd(path, name string, logger logrus.FieldLogger, runners map[string]SchemaCreator) *cobra.Command

MigratorSQLCmd returns a *cobra.Command executing SQL schema migrations.

Types

type Opt added in v0.0.14

type Opt func(*options)

Opt is a wrapper for options.

func WithAllowRoot added in v0.0.14

func WithAllowRoot() Opt

WithAllowRoot will make it so that root spans will be created if a trace could not be found using opentracing's SpanFromContext method.

func WithDistributedTracing added in v0.0.14

func WithDistributedTracing() Opt

WithDistributedTracing will make it so that a wrapped driver is used that supports the opentracing API.

func WithOmitArgsFromTraceSpans added in v0.0.14

func WithOmitArgsFromTraceSpans() Opt

WithOmitArgsFromTraceSpans will make it so that query arguments are omitted from tracing spans.

func WithRandomDriverName added in v0.0.20

func WithRandomDriverName() Opt

WithRandomDriverName is specifically for writing tests as you can't register a driver with the same name more than once.

type SQLConnection

type SQLConnection struct {
	URL *url.URL
	L   logrus.FieldLogger
	// contains filtered or unexported fields
}

SQLConnection represents a connection to a SQL database.

func NewSQLConnection

func NewSQLConnection(db string, l logrus.FieldLogger, opts ...Opt) (*SQLConnection, error)

NewSQLConnection returns a new SQLConnection.

func (*SQLConnection) GetDatabase

func (c *SQLConnection) GetDatabase() *sqlx.DB

GetDatabase retrusn a database instance.

func (*SQLConnection) GetDatabaseRetry

func (c *SQLConnection) GetDatabaseRetry(maxWait time.Duration, failAfter time.Duration) (*sqlx.DB, error)

GetDatabaseRetry tries to connect to a database and fails after failAfter.

type SchemaCreator

type SchemaCreator interface {
	// CreateSchemas migrates or creates one or more SQL schemas.
	CreateSchemas(db *sqlx.DB) (int, error)
}

SchemaCreator is an interface that allows SQL schemas to be created and migrated.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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