Documentation
¶
Index ¶
- func NewMySQLMigrator(db *sql.DB, mysqlDB *MySQLDB) types.DatabaseMigrator
- func NewMySQLRawQuery(db *sql.DB, sql string, args ...any) types.RawQuery
- func NewMySQLTransaction(tx *sql.Tx, database *MySQLDB) types.Transaction
- type MySQLCapabilities
- func (c *MySQLCapabilities) GetBooleanLiteral(value bool) string
- func (c *MySQLCapabilities) GetDriverType() types.DriverType
- func (c *MySQLCapabilities) GetNullsOrderingSQL(direction types.Order, nullsFirst bool) string
- func (c *MySQLCapabilities) GetPlaceholder(index int) string
- func (c *MySQLCapabilities) GetSupportedSchemes() []string
- func (c *MySQLCapabilities) IsNoSQL() bool
- func (c *MySQLCapabilities) IsSystemIndex(indexName string) bool
- func (c *MySQLCapabilities) IsSystemTable(tableName string) bool
- func (c *MySQLCapabilities) NeedsTypeConversion() bool
- func (c *MySQLCapabilities) QuoteIdentifier(name string) string
- func (c *MySQLCapabilities) RequiresLimitForOffset() bool
- func (c *MySQLCapabilities) SupportsAggregationPipeline() bool
- func (c *MySQLCapabilities) SupportsArrayFields() bool
- func (c *MySQLCapabilities) SupportsDefaultValues() bool
- func (c *MySQLCapabilities) SupportsDistinctOn() bool
- func (c *MySQLCapabilities) SupportsNestedDocuments() bool
- func (c *MySQLCapabilities) SupportsReturning() bool
- func (c *MySQLCapabilities) SupportsTransactions() bool
- type MySQLDB
- func (m *MySQLDB) Begin(ctx context.Context) (types.Transaction, error)
- func (m *MySQLDB) Connect(ctx context.Context) error
- func (m *MySQLDB) CreateModel(ctx context.Context, modelName string) error
- func (m *MySQLDB) DropModel(ctx context.Context, modelName string) error
- func (m *MySQLDB) Exec(query string, args ...any) (sql.Result, error)
- func (m *MySQLDB) GetCapabilities() types.DriverCapabilities
- func (m *MySQLDB) GetDriverType() string
- func (m *MySQLDB) GetMigrator() types.DatabaseMigrator
- func (m *MySQLDB) Model(modelName string) types.ModelQuery
- func (m *MySQLDB) Query(query string, args ...any) (*sql.Rows, error)
- func (m *MySQLDB) QueryRow(query string, args ...any) *sql.Row
- func (m *MySQLDB) Raw(sql string, args ...any) types.RawQuery
- func (m *MySQLDB) SyncSchemas(ctx context.Context) error
- func (m *MySQLDB) Transaction(ctx context.Context, fn func(tx types.Transaction) error) error
- type MySQLMigrator
- func (m *MySQLMigrator) ApplyMigration(sql string) error
- func (m *MySQLMigrator) ConvertFieldToColumnInfo(field schema.Field) *types.ColumnInfo
- func (m *MySQLMigrator) FormatDefaultValue(value any) string
- func (m *MySQLMigrator) GenerateAddColumnSQL(tableName string, field any) (string, error)
- func (m *MySQLMigrator) GenerateColumnDefinitionFromColumnInfo(col types.ColumnInfo) string
- func (m *MySQLMigrator) GenerateCreateIndexSQL(tableName, indexName string, columns []string, unique bool) string
- func (m *MySQLMigrator) GenerateCreateTableSQL(s *schema.Schema) (string, error)
- func (m *MySQLMigrator) GenerateDropColumnSQL(tableName, columnName string) ([]string, error)
- func (m *MySQLMigrator) GenerateDropIndexSQL(indexName string) string
- func (m *MySQLMigrator) GenerateDropTableSQL(tableName string) string
- func (m *MySQLMigrator) GenerateModifyColumnSQL(change types.ColumnChange) ([]string, error)
- func (m *MySQLMigrator) GetDatabaseType() string
- func (m *MySQLMigrator) GetTableInfo(tableName string) (*types.TableInfo, error)
- func (m *MySQLMigrator) GetTables() ([]string, error)
- func (m *MySQLMigrator) IsSystemIndex(indexName string) bool
- func (m *MySQLMigrator) IsSystemTable(tableName string) bool
- func (m *MySQLMigrator) MapFieldType(field schema.Field) string
- type MySQLMigratorWrapper
- func (w *MySQLMigratorWrapper) CompareSchema(existingTable *types.TableInfo, desiredSchema any) (*types.MigrationPlan, error)
- func (w *MySQLMigratorWrapper) GenerateAddColumnSQL(tableName string, field any) (string, error)
- func (w *MySQLMigratorWrapper) GenerateCreateTableSQL(schemaInterface any) (string, error)
- func (w *MySQLMigratorWrapper) IsSystemTable(tableName string) bool
- type MySQLRawQuery
- type MySQLTransaction
- func (t *MySQLTransaction) Commit(ctx context.Context) error
- func (t *MySQLTransaction) CreateMany(ctx context.Context, modelName string, data []any) (types.Result, error)
- func (t *MySQLTransaction) DeleteMany(ctx context.Context, modelName string, condition types.Condition) (types.Result, error)
- func (t *MySQLTransaction) Model(modelName string) types.ModelQuery
- func (t *MySQLTransaction) Raw(sql string, args ...any) types.RawQuery
- func (t *MySQLTransaction) Rollback(ctx context.Context) error
- func (t *MySQLTransaction) RollbackTo(ctx context.Context, name string) error
- func (t *MySQLTransaction) Savepoint(ctx context.Context, name string) error
- func (t *MySQLTransaction) UpdateMany(ctx context.Context, modelName string, condition types.Condition, data any) (types.Result, error)
- type MySQLTransactionDB
- func (tdb *MySQLTransactionDB) Begin(ctx context.Context) (types.Transaction, error)
- func (tdb *MySQLTransactionDB) Close() error
- func (tdb *MySQLTransactionDB) Connect(ctx context.Context) error
- func (tdb *MySQLTransactionDB) CreateModel(ctx context.Context, modelName string) error
- func (tdb *MySQLTransactionDB) DropModel(ctx context.Context, modelName string) error
- func (tdb *MySQLTransactionDB) Exec(query string, args ...any) (sql.Result, error)
- func (tdb *MySQLTransactionDB) GetCapabilities() types.DriverCapabilities
- func (tdb *MySQLTransactionDB) GetDriverType() string
- func (tdb *MySQLTransactionDB) GetFieldMapper() types.FieldMapper
- func (tdb *MySQLTransactionDB) GetMigrator() types.DatabaseMigrator
- func (tdb *MySQLTransactionDB) GetModelSchema(modelName string) (*schema.Schema, error)
- func (tdb *MySQLTransactionDB) GetModels() []string
- func (tdb *MySQLTransactionDB) GetSchema(modelName string) (*schema.Schema, error)
- func (tdb *MySQLTransactionDB) LoadSchema(ctx context.Context, schemaContent string) error
- func (tdb *MySQLTransactionDB) LoadSchemaFrom(ctx context.Context, filename string) error
- func (tdb *MySQLTransactionDB) Model(modelName string) types.ModelQuery
- func (tdb *MySQLTransactionDB) Ping(ctx context.Context) error
- func (tdb *MySQLTransactionDB) Query(query string, args ...any) (*sql.Rows, error)
- func (tdb *MySQLTransactionDB) QueryRow(query string, args ...any) *sql.Row
- func (tdb *MySQLTransactionDB) Raw(sql string, args ...any) types.RawQuery
- func (tdb *MySQLTransactionDB) RegisterSchema(modelName string, s *schema.Schema) error
- func (tdb *MySQLTransactionDB) ResolveFieldName(modelName, fieldName string) (string, error)
- func (tdb *MySQLTransactionDB) ResolveFieldNames(modelName string, fieldNames []string) ([]string, error)
- func (tdb *MySQLTransactionDB) ResolveTableName(modelName string) (string, error)
- func (tdb *MySQLTransactionDB) SyncSchemas(ctx context.Context) error
- func (tdb *MySQLTransactionDB) Transaction(ctx context.Context, fn func(tx types.Transaction) error) error
- type MySQLTransactionRawQuery
- type MySQLURIParser
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewMySQLMigrator ¶
func NewMySQLMigrator(db *sql.DB, mysqlDB *MySQLDB) types.DatabaseMigrator
NewMySQLMigrator creates a new MySQL migrator that implements types.DatabaseMigrator
func NewMySQLRawQuery ¶
NewMySQLRawQuery creates a new MySQL raw query
func NewMySQLTransaction ¶
func NewMySQLTransaction(tx *sql.Tx, database *MySQLDB) types.Transaction
NewMySQLTransaction creates a new MySQL transaction
Types ¶
type MySQLCapabilities ¶
type MySQLCapabilities struct{}
MySQLCapabilities implements types.DriverCapabilities for MySQL
func NewMySQLCapabilities ¶
func NewMySQLCapabilities() *MySQLCapabilities
NewMySQLCapabilities creates new MySQL capabilities
func (*MySQLCapabilities) GetBooleanLiteral ¶
func (c *MySQLCapabilities) GetBooleanLiteral(value bool) string
func (*MySQLCapabilities) GetDriverType ¶
func (c *MySQLCapabilities) GetDriverType() types.DriverType
func (*MySQLCapabilities) GetNullsOrderingSQL ¶
func (c *MySQLCapabilities) GetNullsOrderingSQL(direction types.Order, nullsFirst bool) string
func (*MySQLCapabilities) GetPlaceholder ¶
func (c *MySQLCapabilities) GetPlaceholder(index int) string
func (*MySQLCapabilities) GetSupportedSchemes ¶
func (c *MySQLCapabilities) GetSupportedSchemes() []string
func (*MySQLCapabilities) IsNoSQL ¶
func (c *MySQLCapabilities) IsNoSQL() bool
func (*MySQLCapabilities) IsSystemIndex ¶
func (c *MySQLCapabilities) IsSystemIndex(indexName string) bool
func (*MySQLCapabilities) IsSystemTable ¶
func (c *MySQLCapabilities) IsSystemTable(tableName string) bool
func (*MySQLCapabilities) NeedsTypeConversion ¶
func (c *MySQLCapabilities) NeedsTypeConversion() bool
func (*MySQLCapabilities) QuoteIdentifier ¶
func (c *MySQLCapabilities) QuoteIdentifier(name string) string
func (*MySQLCapabilities) RequiresLimitForOffset ¶
func (c *MySQLCapabilities) RequiresLimitForOffset() bool
func (*MySQLCapabilities) SupportsAggregationPipeline ¶
func (c *MySQLCapabilities) SupportsAggregationPipeline() bool
func (*MySQLCapabilities) SupportsArrayFields ¶
func (c *MySQLCapabilities) SupportsArrayFields() bool
func (*MySQLCapabilities) SupportsDefaultValues ¶
func (c *MySQLCapabilities) SupportsDefaultValues() bool
func (*MySQLCapabilities) SupportsDistinctOn ¶
func (c *MySQLCapabilities) SupportsDistinctOn() bool
func (*MySQLCapabilities) SupportsNestedDocuments ¶
func (c *MySQLCapabilities) SupportsNestedDocuments() bool
func (*MySQLCapabilities) SupportsReturning ¶
func (c *MySQLCapabilities) SupportsReturning() bool
func (*MySQLCapabilities) SupportsTransactions ¶
func (c *MySQLCapabilities) SupportsTransactions() bool
type MySQLDB ¶
MySQLDB implements the Database interface for MySQL
func NewMySQLDB ¶
NewMySQLDB creates a new MySQL database instance The uri parameter should be a native MySQL DSN (e.g., "user:pass@tcp(host:port)/db")
func (*MySQLDB) CreateModel ¶
CreateModel creates a table for the given model
func (*MySQLDB) GetCapabilities ¶
func (m *MySQLDB) GetCapabilities() types.DriverCapabilities
GetCapabilities returns driver capabilities
func (*MySQLDB) GetDriverType ¶
GetMigrator returns a migrator for MySQL GetDriverType returns the database driver type
func (*MySQLDB) GetMigrator ¶
func (m *MySQLDB) GetMigrator() types.DatabaseMigrator
func (*MySQLDB) Model ¶
func (m *MySQLDB) Model(modelName string) types.ModelQuery
Model creates a new model query
func (*MySQLDB) SyncSchemas ¶
SyncSchemas synchronizes all loaded schemas with the database
func (*MySQLDB) Transaction ¶
Transaction executes a function within a transaction
type MySQLMigrator ¶
type MySQLMigrator struct {
// contains filtered or unexported fields
}
MySQLMigrator implements types.DatabaseSpecificMigrator for MySQL
func (*MySQLMigrator) ApplyMigration ¶
func (m *MySQLMigrator) ApplyMigration(sql string) error
ApplyMigration executes a migration SQL
func (*MySQLMigrator) ConvertFieldToColumnInfo ¶
func (m *MySQLMigrator) ConvertFieldToColumnInfo(field schema.Field) *types.ColumnInfo
ConvertFieldToColumnInfo converts a schema field to column info
func (*MySQLMigrator) FormatDefaultValue ¶
func (m *MySQLMigrator) FormatDefaultValue(value any) string
FormatDefaultValue formats a default value for MySQL
func (*MySQLMigrator) GenerateAddColumnSQL ¶
func (m *MySQLMigrator) GenerateAddColumnSQL(tableName string, field any) (string, error)
GenerateAddColumnSQL generates ADD COLUMN SQL
func (*MySQLMigrator) GenerateColumnDefinitionFromColumnInfo ¶
func (m *MySQLMigrator) GenerateColumnDefinitionFromColumnInfo(col types.ColumnInfo) string
GenerateColumnDefinitionFromColumnInfo generates column definition from ColumnInfo
func (*MySQLMigrator) GenerateCreateIndexSQL ¶
func (m *MySQLMigrator) GenerateCreateIndexSQL(tableName, indexName string, columns []string, unique bool) string
GenerateCreateIndexSQL generates CREATE INDEX SQL
func (*MySQLMigrator) GenerateCreateTableSQL ¶
func (m *MySQLMigrator) GenerateCreateTableSQL(s *schema.Schema) (string, error)
GenerateCreateTableSQL generates CREATE TABLE SQL from schema
func (*MySQLMigrator) GenerateDropColumnSQL ¶
func (m *MySQLMigrator) GenerateDropColumnSQL(tableName, columnName string) ([]string, error)
GenerateDropColumnSQL generates DROP COLUMN SQL
func (*MySQLMigrator) GenerateDropIndexSQL ¶
func (m *MySQLMigrator) GenerateDropIndexSQL(indexName string) string
GenerateDropIndexSQL generates DROP INDEX SQL
func (*MySQLMigrator) GenerateDropTableSQL ¶
func (m *MySQLMigrator) GenerateDropTableSQL(tableName string) string
GenerateDropTableSQL generates DROP TABLE SQL
func (*MySQLMigrator) GenerateModifyColumnSQL ¶
func (m *MySQLMigrator) GenerateModifyColumnSQL(change types.ColumnChange) ([]string, error)
GenerateModifyColumnSQL generates MODIFY COLUMN SQL
func (*MySQLMigrator) GetDatabaseType ¶
func (m *MySQLMigrator) GetDatabaseType() string
GetDatabaseType returns the database type
func (*MySQLMigrator) GetTableInfo ¶
func (m *MySQLMigrator) GetTableInfo(tableName string) (*types.TableInfo, error)
GetTableInfo returns table information
func (*MySQLMigrator) GetTables ¶
func (m *MySQLMigrator) GetTables() ([]string, error)
GetTables returns all table names
func (*MySQLMigrator) IsSystemIndex ¶
func (m *MySQLMigrator) IsSystemIndex(indexName string) bool
IsSystemIndex checks if an index is a system-generated index in MySQL
func (*MySQLMigrator) IsSystemTable ¶
func (m *MySQLMigrator) IsSystemTable(tableName string) bool
IsSystemTable checks if a table is a system table in MySQL
func (*MySQLMigrator) MapFieldType ¶
func (m *MySQLMigrator) MapFieldType(field schema.Field) string
MapFieldType maps schema field types to MySQL types
type MySQLMigratorWrapper ¶
type MySQLMigratorWrapper struct {
*base.BaseMigrator
// contains filtered or unexported fields
}
MySQLMigratorWrapper wraps MySQLMigrator with BaseMigrator to implement types.DatabaseMigrator
func (*MySQLMigratorWrapper) CompareSchema ¶
func (w *MySQLMigratorWrapper) CompareSchema(existingTable *types.TableInfo, desiredSchema any) (*types.MigrationPlan, error)
CompareSchema wraps the BaseMigrator's CompareSchema to match the DatabaseMigrator interface
func (*MySQLMigratorWrapper) GenerateAddColumnSQL ¶
func (w *MySQLMigratorWrapper) GenerateAddColumnSQL(tableName string, field any) (string, error)
GenerateAddColumnSQL wraps to match the DatabaseMigrator interface
func (*MySQLMigratorWrapper) GenerateCreateTableSQL ¶
func (w *MySQLMigratorWrapper) GenerateCreateTableSQL(schemaInterface any) (string, error)
GenerateCreateTableSQL wraps to match the DatabaseMigrator interface
func (*MySQLMigratorWrapper) IsSystemTable ¶
func (w *MySQLMigratorWrapper) IsSystemTable(tableName string) bool
IsSystemTable delegates to the specific implementation
type MySQLRawQuery ¶
type MySQLRawQuery struct {
// contains filtered or unexported fields
}
MySQLRawQuery implements types.RawQuery for MySQL
type MySQLTransaction ¶
type MySQLTransaction struct {
// contains filtered or unexported fields
}
MySQLTransaction implements types.Transaction for MySQL
func (*MySQLTransaction) Commit ¶
func (t *MySQLTransaction) Commit(ctx context.Context) error
Commit commits the transaction
func (*MySQLTransaction) CreateMany ¶
func (t *MySQLTransaction) CreateMany(ctx context.Context, modelName string, data []any) (types.Result, error)
CreateMany creates multiple records within the transaction
func (*MySQLTransaction) DeleteMany ¶
func (t *MySQLTransaction) DeleteMany(ctx context.Context, modelName string, condition types.Condition) (types.Result, error)
DeleteMany deletes multiple records within the transaction
func (*MySQLTransaction) Model ¶
func (t *MySQLTransaction) Model(modelName string) types.ModelQuery
Model creates a new model query within the transaction
func (*MySQLTransaction) Raw ¶
func (t *MySQLTransaction) Raw(sql string, args ...any) types.RawQuery
Raw creates a new raw query within the transaction
func (*MySQLTransaction) Rollback ¶
func (t *MySQLTransaction) Rollback(ctx context.Context) error
Rollback rolls back the transaction
func (*MySQLTransaction) RollbackTo ¶
func (t *MySQLTransaction) RollbackTo(ctx context.Context, name string) error
RollbackTo rolls back to a specific savepoint
type MySQLTransactionDB ¶
type MySQLTransactionDB struct {
// contains filtered or unexported fields
}
MySQLTransactionDB implements types.Database for use within a transaction
func (*MySQLTransactionDB) Begin ¶
func (tdb *MySQLTransactionDB) Begin(ctx context.Context) (types.Transaction, error)
Begin - not supported in transaction
func (*MySQLTransactionDB) Close ¶
func (tdb *MySQLTransactionDB) Close() error
Close - not supported in transaction
func (*MySQLTransactionDB) Connect ¶
func (tdb *MySQLTransactionDB) Connect(ctx context.Context) error
Connect - not supported in transaction
func (*MySQLTransactionDB) CreateModel ¶
func (tdb *MySQLTransactionDB) CreateModel(ctx context.Context, modelName string) error
CreateModel - not supported in transaction
func (*MySQLTransactionDB) DropModel ¶
func (tdb *MySQLTransactionDB) DropModel(ctx context.Context, modelName string) error
DropModel - not supported in transaction
func (*MySQLTransactionDB) GetCapabilities ¶
func (tdb *MySQLTransactionDB) GetCapabilities() types.DriverCapabilities
GetCapabilities delegates to the main database
func (*MySQLTransactionDB) GetDriverType ¶
func (tdb *MySQLTransactionDB) GetDriverType() string
GetDriverType delegates to the main database
func (*MySQLTransactionDB) GetFieldMapper ¶
func (tdb *MySQLTransactionDB) GetFieldMapper() types.FieldMapper
GetFieldMapper delegates to the main database
func (*MySQLTransactionDB) GetMigrator ¶
func (tdb *MySQLTransactionDB) GetMigrator() types.DatabaseMigrator
GetMigrator delegates to the main database
func (*MySQLTransactionDB) GetModelSchema ¶
func (tdb *MySQLTransactionDB) GetModelSchema(modelName string) (*schema.Schema, error)
GetModelSchema delegates to the main database
func (*MySQLTransactionDB) GetModels ¶
func (tdb *MySQLTransactionDB) GetModels() []string
GetModels delegates to the main database
func (*MySQLTransactionDB) GetSchema ¶
func (tdb *MySQLTransactionDB) GetSchema(modelName string) (*schema.Schema, error)
GetSchema delegates to the main database
func (*MySQLTransactionDB) LoadSchema ¶
func (tdb *MySQLTransactionDB) LoadSchema(ctx context.Context, schemaContent string) error
LoadSchema is not supported within a transaction
func (*MySQLTransactionDB) LoadSchemaFrom ¶
func (tdb *MySQLTransactionDB) LoadSchemaFrom(ctx context.Context, filename string) error
LoadSchemaFrom is not supported within a transaction
func (*MySQLTransactionDB) Model ¶
func (tdb *MySQLTransactionDB) Model(modelName string) types.ModelQuery
Model creates a model query that uses the transaction
func (*MySQLTransactionDB) Ping ¶
func (tdb *MySQLTransactionDB) Ping(ctx context.Context) error
Ping delegates to the main database
func (*MySQLTransactionDB) QueryRow ¶
func (tdb *MySQLTransactionDB) QueryRow(query string, args ...any) *sql.Row
QueryRow executes a query within the transaction
func (*MySQLTransactionDB) Raw ¶
func (tdb *MySQLTransactionDB) Raw(sql string, args ...any) types.RawQuery
Raw creates a raw query that uses the transaction
func (*MySQLTransactionDB) RegisterSchema ¶
func (tdb *MySQLTransactionDB) RegisterSchema(modelName string, s *schema.Schema) error
RegisterSchema delegates to the main database
func (*MySQLTransactionDB) ResolveFieldName ¶
func (tdb *MySQLTransactionDB) ResolveFieldName(modelName, fieldName string) (string, error)
ResolveFieldName delegates to the main database
func (*MySQLTransactionDB) ResolveFieldNames ¶
func (tdb *MySQLTransactionDB) ResolveFieldNames(modelName string, fieldNames []string) ([]string, error)
ResolveFieldNames delegates to the main database
func (*MySQLTransactionDB) ResolveTableName ¶
func (tdb *MySQLTransactionDB) ResolveTableName(modelName string) (string, error)
ResolveTableName delegates to the main database
func (*MySQLTransactionDB) SyncSchemas ¶
func (tdb *MySQLTransactionDB) SyncSchemas(ctx context.Context) error
SyncSchemas is not supported within a transaction
func (*MySQLTransactionDB) Transaction ¶
func (tdb *MySQLTransactionDB) Transaction(ctx context.Context, fn func(tx types.Transaction) error) error
Transaction - not supported in transaction
type MySQLTransactionRawQuery ¶
type MySQLTransactionRawQuery struct {
// contains filtered or unexported fields
}
MySQLTransactionRawQuery implements RawQuery for MySQL transactions
type MySQLURIParser ¶
type MySQLURIParser struct{}
MySQLURIParser implements URIParser for MySQL databases
func NewMySQLURIParser ¶
func NewMySQLURIParser() *MySQLURIParser
NewMySQLURIParser creates a new MySQL URI parser
func (*MySQLURIParser) GetDriverType ¶
func (p *MySQLURIParser) GetDriverType() string
GetDriverType returns the driver type this parser is for
func (*MySQLURIParser) GetSupportedSchemes ¶
func (p *MySQLURIParser) GetSupportedSchemes() []string
GetSupportedSchemes returns the URI schemes this parser supports
func (*MySQLURIParser) ParseURI ¶
func (p *MySQLURIParser) ParseURI(uri string) (string, error)
ParseURI parses a MySQL URI and returns a MySQL DSN Supported formats:
- mysql://user:password@host:port/database
- mysql://user:password@host/database (default port 3306)
- mysql://user@host/database (no password)
- mysql://host/database (no auth)