Documentation
¶
Overview ¶
Copyright 2020 The Moov Authors Use of this source code is governed by an Apache License license that can be found in the LICENSE file.
Copyright 2020 The Moov Authors Use of this source code is governed by an Apache License license that can be found in the LICENSE file.
Copyright 2020 The Moov Authors Use of this source code is governed by an Apache License license that can be found in the LICENSE file.
Copyright 2020 The Moov Authors Use of this source code is governed by an Apache License license that can be found in the LICENSE file.
Copyright 2020 The Moov Authors Use of this source code is governed by an Apache License license that can be found in the LICENSE file.
Index ¶
- Constants
- func ApplyConnectionsConfig(db *sql.DB, connections *ConnectionsConfig, logger log.Logger) *sql.DB
- func DataTooLong(err error) bool
- func DeadlockFound(err error) bool
- func GetDriver(logger log.Logger, config DatabaseConfig) (source.Driver, database.Driver, error)deprecated
- func LoadTLSClientCertFromFile(logger log.Logger, certFile, keyFile string) (tls.Certificate, error)
- func LoadTLSClientCertsFromConfig(logger log.Logger, config *MySQLConfig) ([]tls.Certificate, error)
- func MySQLDataTooLong(err error) bool
- func MySQLDeadlockFound(err error) bool
- func MySQLDriver(db *sql.DB) (database.Driver, error)
- func MySQLUniqueViolation(err error) bool
- func New(ctx context.Context, logger log.Logger, config DatabaseConfig) (*sql.DB, error)
- func NewAndMigrate(ctx context.Context, logger log.Logger, config DatabaseConfig, ...) (*sql.DB, error)
- func NewPkgerSource(database string, allowGeneric bool) (source.Driver, error)
- func NopInTx() error
- func PostgresDeadlockFound(err error) bool
- func PostgresDriver(db *sql.DB) (database.Driver, error)
- func PostgresUniqueViolation(err error) bool
- func RecordMySQLStats(db *sql.DB) error
- func RunMigrations(logger log.Logger, config DatabaseConfig, opts ...MigrateOption) error
- func RunMigrationsContext(ctx context.Context, logger log.Logger, config DatabaseConfig, ...) error
- func SpannerDriver(config DatabaseConfig) (database.Driver, error)
- func SpannerMigrationDriver(cfg SpannerConfig, databaseName string) (database.Driver, error)
- func SpannerUniqueViolation(err error) bool
- func UniqueViolation(err error) bool
- type ConnectionsConfig
- type DatabaseConfig
- type ErrOpenConnections
- type MigrateOption
- type MySQLConfig
- type PostgresAlloyConfig
- type PostgresConfig
- type PostgresTLSConfig
- type RunInTx
- type SourceDriver
- type SpannerConfig
- type TLSClientCertConfig
Constants ¶
const MIGRATIONS_DIR = "/migrations/"
Variables ¶
This section is empty.
Functions ¶
func ApplyConnectionsConfig ¶
func DataTooLong ¶
func DeadlockFound ¶
func LoadTLSClientCertsFromConfig ¶
func LoadTLSClientCertsFromConfig(logger log.Logger, config *MySQLConfig) ([]tls.Certificate, error)
func MySQLDataTooLong ¶
MySQLDataTooLong returns true when the provided error matches the MySQL code for data too long for column (when trying to insert a value that is greater than the defined max size of the column).
func MySQLDeadlockFound ¶
MySQLDeadlockFound returns true when the provided error matches the MySQL code for deadlock found.
func MySQLUniqueViolation ¶
MySQLUniqueViolation returns true when the provided error matches the MySQL code for duplicate entries (violating a unique table constraint).
func New ¶
New establishes a database connection according to the type and environmental variables for that specific database.
func NewAndMigrate ¶
func NewAndMigrate(ctx context.Context, logger log.Logger, config DatabaseConfig, opts ...MigrateOption) (*sql.DB, error)
func NewPkgerSource ¶
func PostgresDeadlockFound ¶
PostgresDeadlockFound returns true when the provided error matches the Postgres code for deadlock found.
func PostgresUniqueViolation ¶
PostgresUniqueViolation returns true when the provided error matches the Postgres code for unique violation.
func RecordMySQLStats ¶
func RunMigrations ¶
func RunMigrations(logger log.Logger, config DatabaseConfig, opts ...MigrateOption) error
func RunMigrationsContext ¶
func RunMigrationsContext(ctx context.Context, logger log.Logger, config DatabaseConfig, opts ...MigrateOption) error
func SpannerDriver ¶
func SpannerDriver(config DatabaseConfig) (database.Driver, error)
func SpannerMigrationDriver ¶
func SpannerMigrationDriver(cfg SpannerConfig, databaseName string) (database.Driver, error)
func SpannerUniqueViolation ¶
SpannerUniqueViolation returns true when the provided error matches the Spanner code for duplicate entries (violating a unique table constraint). Refer to https://cloud.google.com/spanner/docs/error-codes for Spanner error definitions, and https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto for error codes
func UniqueViolation ¶
UniqueViolation returns true when the provided error matches a database error for duplicate entries (violating a unique table constraint).
Types ¶
type ConnectionsConfig ¶
type DatabaseConfig ¶
type DatabaseConfig struct {
MySQL *MySQLConfig
Spanner *SpannerConfig
Postgres *PostgresConfig
DatabaseName string
}
type ErrOpenConnections ¶
ErrOpenConnections describes the number of open connections that should have been closed by a call to Close(). All queries/transactions should call Close() to prevent unused, open connections.
func (ErrOpenConnections) Error ¶
func (e ErrOpenConnections) Error() string
type MigrateOption ¶
type MigrateOption func(o *migrateOptions) error
func WithEmbeddedMigrations ¶
func WithEmbeddedMigrations(f fs.FS) MigrateOption
func WithTimeout ¶
func WithTimeout(dur time.Duration) MigrateOption
type MySQLConfig ¶
type MySQLConfig struct {
Address string
User string
Password string
Connections ConnectionsConfig
UseTLS bool
TLSCAFile string
VerifyCAFile bool
TLSClientCerts []TLSClientCertConfig
// InsecureSkipVerify is a dangerous option which should be used with extreme caution.
// This setting disables multiple security checks performed with TLS connections.
InsecureSkipVerify bool
}
func (*MySQLConfig) MarshalJSON ¶
func (m *MySQLConfig) MarshalJSON() ([]byte, error)
type PostgresAlloyConfig ¶
type PostgresConfig ¶
type PostgresConfig struct {
Address string
User string
Password string
Connections ConnectionsConfig
TLS *PostgresTLSConfig
Alloy *PostgresAlloyConfig
}