Documentation
¶
Overview ¶
Package sql defines the SQL database management utilities.
Index ¶
- func RegisterDialect(name string, dialect Dialect)
- type Connection
- type ConnectionData
- type ConnectionFw
- type ConnectionFwOptions
- type ContextKey
- type Dialect
- type ErrorTranslator
- type Fw
- func (p *Fw) AddConfig(config persistence.StorageConfig) error
- func (p *Fw) BeginTransaction(ctx context.Context) (context.Context, error)
- func (p *Fw) CommitTransaction(ctx context.Context) error
- func (p *Fw) ExecuteStmt(ctx context.Context, stmtID string, args interface{}) error
- func (p *Fw) ExecuteStmtWithStorageResult(ctx context.Context, stmtID string, args interface{}) (*persistence.ExecuteStmtWithStorageResultOutput, error)
- func (p *Fw) GetTransaction(ctx context.Context) (any, error)
- func (p *Fw) QueryAll(ctx context.Context, stmtID string, args interface{}, dst interface{}) error
- func (p *Fw) RollbackTransaction(ctx context.Context) error
- func (p *Fw) SetSQLClientParameters(parameters SQLClientParameters)
- type FwOptions
- type GetVersionOutput
- type MigrationVersion
- type Migrator
- type Opener
- type PostgresInfo
- type SQLClientParameters
- type SQLiteInfo
- type SetVersionInput
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RegisterDialect ¶
Types ¶
type Connection ¶
type Connection interface {
// GetDB returns the underlying SQL database connection.
GetDB() *sqlx.DB
// GetErrorTranslator returns the error translator associated with the connection.
GetErrorTranslator() ErrorTranslator
// GetMigrator returns the database migrator associated with the connection.
GetMigrator() Migrator
// GetDialectName returns the name of the SQL dialect used by the connection.
GetDialectName() string
}
Connection represents a SQL database connection.
type ConnectionData ¶
type ConnectionFw ¶
type ConnectionFw struct {
// contains filtered or unexported fields
}
ConnectionFw represents a database connection framework.
func NewConnectionFw ¶
func NewConnectionFw(options ConnectionFwOptions) (*ConnectionFw, error)
NewConnectionFw returns a new ConnectionFw with the specified ConnectionFwOptions.
func (ConnectionFw) GetDB ¶
func (c ConnectionFw) GetDB() *sqlx.DB
func (ConnectionFw) GetDialectName ¶
func (c ConnectionFw) GetDialectName() string
func (ConnectionFw) GetErrorTranslator ¶
func (c ConnectionFw) GetErrorTranslator() ErrorTranslator
func (ConnectionFw) GetMigrator ¶
func (c ConnectionFw) GetMigrator() Migrator
type ConnectionFwOptions ¶
type ConnectionFwOptions struct {
// Postgres defines the PostgresSQL connection information
Postgres *PostgresInfo `mapstructure:"postgres"`
// SQLite defines the SQLite connection information
SQLite *SQLiteInfo
}
ConnectionFwOptions defines the options to configure a Connection
type ContextKey ¶
type ContextKey string
type ErrorTranslator ¶
type ErrorTranslator interface {
// TranslateError translates an SQL error.
TranslateError(ctx context.Context, originalErr error, defaultError error) error
}
ErrorTranslator translates SQL errors for better context.
type Fw ¶
type Fw struct {
// contains filtered or unexported fields
}
Fw persistence framework for Storage data: - Allows transactional executions - Translates specific database errors - Allow templated statements
func NewPersistenceFw ¶
NewPersistenceFw creates a PersistenceFw instance with the given options
func (*Fw) AddConfig ¶
func (p *Fw) AddConfig(config persistence.StorageConfig) error
AddConfig registers SQL statements
func (*Fw) BeginTransaction ¶
BeginTransaction starts a Storage operation that is transactional. It returns an error if it fails
func (*Fw) CommitTransaction ¶
CommitTransaction confirms a Storage operation that is transactional. It returns an error if it fails
func (*Fw) ExecuteStmt ¶
ExecuteStmt executes statement with arguments provided. It returns an error if it fails
func (*Fw) ExecuteStmtWithStorageResult ¶
func (p *Fw) ExecuteStmtWithStorageResult(ctx context.Context, stmtID string, args interface{}) (*persistence.ExecuteStmtWithStorageResultOutput, error)
ExecuteStmtWithStorageResult executes statement with arguments provided. It returns information on stmt or an error if it fails
func (*Fw) GetTransaction ¶
GetTransaction returns the transaction from context (in case of success).
func (*Fw) QueryAll ¶
QueryAll obtains all element from statement with arguments provided. It returns an error if it fails
func (*Fw) RollbackTransaction ¶
RollbackTransaction rollbacks to previous state a Storage operation that is transactional. It returns an error if it fails
func (*Fw) SetSQLClientParameters ¶
func (p *Fw) SetSQLClientParameters(parameters SQLClientParameters)
type FwOptions ¶
type FwOptions struct {
Connection Connection
SQLClientParameters SQLClientParameters
}
FwOptions options to configure the PersistenceFw
type GetVersionOutput ¶
type GetVersionOutput struct {
MigrationVersion
}
type MigrationVersion ¶
type Migrator ¶
type Migrator interface {
// OpenConnection opens a connection to the database.
OpenConnection(ctx context.Context) error
// InitMigration initializes the migration process.
InitMigration(ctx context.Context, migrationsTablePrefix *string) error
// GetMigrationVersion retrieves the current migration version.
GetMigrationVersion(ctx context.Context) (*GetVersionOutput, error)
// SetMigrationVersion sets the migration version.
SetMigrationVersion(ctx context.Context, input SetVersionInput) error
// RunMigration runs a migration script.
RunMigration(ctx context.Context, migration string) error
// CloseConnection closes the connection to the database.
CloseConnection(ctx context.Context) error
}
Migrator manages database migrations.
type Opener ¶
type Opener interface {
// GetConnectionData retrieves connection data from the provided configuration.
GetConnectionData(config interface{}) (*ConnectionData, error)
// Connect establishes a database connection using the provided connection data.
Connect(connectionData ConnectionData) (*sqlx.DB, error)
}
Opener defines functionality to establish a database connection.
type PostgresInfo ¶
type PostgresInfo struct {
Host string `mapstructure:"host" valid:"required~hosts is mandatory in Postgres Connection config"`
Port int `mapstructure:"port" valid:"required~port is mandatory in Postgres Connection config"`
Scheme string `mapstructure:"scheme" valid:"required~scheme is mandatory in Postgres Connection config"`
Username string `mapstructure:"username" valid:"required~username is mandatory in Postgres Connection config"`
Password string `mapstructure:"password" valid:"required~password is mandatory in Postgres Connection config"`
SSLMode string `mapstructure:"sslMode" valid:"required~sslMode is mandatory in Postgres Connection config"`
Database string `mapstructure:"database" valid:"required~database is mandatory in Postgres Connection config"`
}
PostgresInfo contains information required to establish a connection to a PostgreSQL database.
type SQLClientParameters ¶
type SQLClientParameters struct {
MaxIdleConnections *int
MaxOpenConnections *int
MaxConnectionLifetime *int
}
SQLClientParameters defines parameters that will be passed to database/sql DB to configure client connections settings
type SQLiteInfo ¶
type SQLiteInfo struct {
// ConnectionString to connect to sqlite databases
ConnectionString string `valid:"required~connectionString is mandatory in SQLite Connection config"`
}
SQLiteInfo contains information required to establish a connection to a SQLite database.
type SetVersionInput ¶
type SetVersionInput struct {
MigrationVersion
}
Directories
¶
| Path | Synopsis |
|---|---|
|
Package postgres defines the PostgresSQL functionalities.
|
Package postgres defines the PostgresSQL functionalities. |
|
Package sqlite defines the SQLite database functionality to operate with.
|
Package sqlite defines the SQLite database functionality to operate with. |