Documentation ¶
Index ¶
- func GetDriver(db *sql.DB, config DatabaseConfig) (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 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 DatabaseConfig
- type ErrOpenConnections
- type MySQLConfig
- type SQLiteConfig
- type TestMySQLDB
- type TestSQLiteDB
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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 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 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 SQLiteConfig ¶
type SQLiteConfig struct {
Path string
}
type TestMySQLDB ¶
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 ¶
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