Documentation ¶
Overview ¶
Package sqlcon provides helpers for dealing with SQL connectivity.
Index ¶
Constants ¶
This section is empty.
Variables ¶
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 ¶
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 OptionModifier ¶ added in v0.0.39
type OptionModifier func(*options)
OptionModifier is a wrapper for options.
func WithAllowRoot ¶ added in v0.0.14
func WithAllowRoot() OptionModifier
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() OptionModifier
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() OptionModifier
WithOmitArgsFromTraceSpans will make it so that query arguments are omitted from tracing spans.
func WithRandomDriverName ¶ added in v0.0.20
func WithRandomDriverName() OptionModifier
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 ...OptionModifier) (*SQLConnection, error)
NewSQLConnection returns a new SQLConnection.
func (*SQLConnection) GetDatabase ¶
func (c *SQLConnection) GetDatabase() (*sqlx.DB, error)
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.