database

package
v0.14.2 Latest Latest
Warning

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

Go to latest
Published: Nov 11, 2020 License: Apache-2.0 Imports: 28 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetDriver

func GetDriver(db *sql.DB, config DatabaseConfig) (database.Driver, error)

func MySQLDriver

func MySQLDriver(db *sql.DB) (database.Driver, error)

func MySQLUniqueViolation

func MySQLUniqueViolation(err error) bool

MySQLUniqueViolation returns true when the provided error matches the MySQL code for duplicate entries (violating a unique table constraint).

func New

func New(ctx context.Context, logger log.Logger, config DatabaseConfig) (*sql.DB, error)

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) (*sql.DB, error)

func RunMigrations

func RunMigrations(logger log.Logger, config DatabaseConfig) error

func SQLite3Driver

func SQLite3Driver(db *sql.DB) (database.Driver, error)

func SQLiteUniqueViolation added in v0.14.0

func SQLiteUniqueViolation(err error) bool

SQLiteUniqueViolation returns true when the provided error matches the SQLite error for duplicate entries (violating a unique table constraint).

func UniqueViolation

func UniqueViolation(err error) bool

UniqueViolation returns true when the provided error matches a database error for duplicate entries (violating a unique table constraint).

Types

type DatabaseConfig

type DatabaseConfig struct {
	MySQL        *MySQLConfig
	SQLite       *SQLiteConfig
	DatabaseName string
}

type ErrOpenConnections added in v0.14.0

type ErrOpenConnections struct {
	Database       string
	NumConnections int
}

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
}

type SQLiteConfig

type SQLiteConfig struct {
	Path string
}

type TestMySQLDB

type TestMySQLDB struct {
	*sql.DB
	// contains filtered or unexported fields
}

TestMySQLDB is a wrapper around sql.DB for MySQL connections designed for tests to provide a clean database for each testcase. Callers should cleanup with Close() when finished.

func CreateTestMySQLDB

func CreateTestMySQLDB(t *testing.T) *TestMySQLDB

CreateTestMySQLDB returns a TestMySQLDB which can be used in tests as a clean mysql database. All migrations are ran on the db before.

Callers should call close on the returned *TestMySQLDB.

func (*TestMySQLDB) Close

func (r *TestMySQLDB) Close() error

type TestSQLiteDB

type TestSQLiteDB struct {
	*sql.DB
	// contains filtered or unexported fields
}

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

Jump to

Keyboard shortcuts

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