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 GetDriver(db *sql.DB, config DatabaseConfig) (source.Driver, database.Driver, error)
- 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) (source.Driver, error)
- func NopInTx() error
- func RecordMySQLStats(db *sql.DB) error
- func RunMigrations(logger log.Logger, config DatabaseConfig) error
- func SQLite3Driver(db *sql.DB) (database.Driver, error)
- func SQLiteUniqueViolation(err error) bool
- func UniqueViolation(err error) bool
- type ConnectionsConfig
- type DatabaseConfig
- type ErrOpenConnections
- type MySQLConfig
- type RunInTx
- type SQLiteConfig
- type TestSQLiteDB
Constants ¶
const MIGRATIONS_DIR = "/migrations/"
Variables ¶
This section is empty.
Functions ¶
func ApplyConnectionsConfig ¶ added in v0.17.0
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 RecordMySQLStats ¶ added in v0.27.4
func RunMigrations ¶
func RunMigrations(logger log.Logger, config DatabaseConfig) error
func SQLiteUniqueViolation ¶ added in v0.14.0
SQLiteUniqueViolation returns true when the provided error matches the SQLite error for duplicate entries (violating a unique table constraint).
func UniqueViolation ¶
UniqueViolation returns true when the provided error matches a database error for duplicate entries (violating a unique table constraint).
Types ¶
type ConnectionsConfig ¶ added in v0.17.0
type DatabaseConfig ¶
type DatabaseConfig struct { MySQL *MySQLConfig SQLite *SQLiteConfig DatabaseName string }
type ErrOpenConnections ¶ added in v0.14.0
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 ¶ added in v0.14.0
func (e ErrOpenConnections) Error() string
type MySQLConfig ¶
type MySQLConfig struct { Address string User string Password string Connections ConnectionsConfig UseTLS bool TLSCAFile string VerifyCAFile bool // 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 ¶ added in v0.20.0
func (m *MySQLConfig) MarshalJSON() ([]byte, error)
type SQLiteConfig ¶
type SQLiteConfig struct {
Path string
}
type TestSQLiteDB ¶
TestSQLiteDB is a wrapper around sql.DB for SQLite connections designed for tests to provide a clean database for each testcase. Callers should cleanup with Close() when finished.
func CreateTestSQLiteDB ¶ added in v0.14.0
func CreateTestSQLiteDB(t *testing.T) *TestSQLiteDB
CreateTestSQLiteDB returns a TestSQLiteDB which can be used in tests as a clean sqlite database. All migrations are ran on the db before.
Callers should call close on the returned *TestSQLiteDB.
func (*TestSQLiteDB) Close ¶
func (r *TestSQLiteDB) Close() error