Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Querier ¶
type Querier interface {
// CreateTable returns the SQL query string to create the db version table.
CreateTable(tableName string) string
// InsertVersion returns the SQL query string to insert a new version into the db version table.
InsertVersion(tableName string) string
// DeleteVersion returns the SQL query string to delete a version from the db version table.
DeleteVersion(tableName string) string
// GetMigrationByVersion returns the SQL query string to get a single migration by version.
//
// The query should return the timestamp and is_applied columns.
GetMigrationByVersion(tableName string) string
// ListMigrations returns the SQL query string to list all migrations in descending order by id.
//
// The query should return the version_id and is_applied columns.
ListMigrations(tableName string) string
// GetLatestVersion returns the SQL query string to get the last version_id from the db version
// table. Returns a nullable int64 value.
GetLatestVersion(tableName string) string
}
Querier is the interface that wraps the basic methods to create a dialect specific query.
It is intended tio be using with [database.NewStoreFromQuerier] to create a new [database.Store] implementation based on a custom querier.
type QuerierExtender ¶
type QuerierExtender interface {
Querier
// TableExists returns a database-specific SQL query to check if a table exists. For example,
// implementations might query system catalogs like pg_tables or sqlite_master. Return empty
// string if not supported.
TableExists(tableName string) string
}
QuerierExtender extends the Querier interface with optional database-specific optimizations. While not required, implementing these methods can improve performance.
IMPORTANT: This interface may be expanded in future versions. Implementors must be prepared to update their implementations when new methods are added.
Example compile-time check:
var _ QuerierExtender = (*CustomQuerierExtended)(nil)
In short, it's exported to allow implementors to have a compile-time check that they are implementing the interface correctly.