Documentation
ΒΆ
Index ΒΆ
- type ConnectionInfo
- type DatabaseFeature
- type DatabaseManager
- func (dm *DatabaseManager) BeginTransaction(ctx context.Context, providerName string) (Transaction, error)
- func (dm *DatabaseManager) Close() error
- func (dm *DatabaseManager) Connect(ctx context.Context, providerName string) error
- func (dm *DatabaseManager) Disconnect(ctx context.Context, providerName string) error
- func (dm *DatabaseManager) Exec(ctx context.Context, providerName, query string, args ...interface{}) (ExecResult, error)
- func (dm *DatabaseManager) GetConnectedProviders() []string
- func (dm *DatabaseManager) GetDefaultProvider() (DatabaseProvider, error)
- func (dm *DatabaseManager) GetProvider(name string) (DatabaseProvider, error)
- func (dm *DatabaseManager) GetProviderCapabilities(providerName string) ([]DatabaseFeature, *ConnectionInfo, error)
- func (dm *DatabaseManager) GetStats(ctx context.Context, providerName string) (*DatabaseStats, error)
- func (dm *DatabaseManager) GetSupportedProviders() []string
- func (dm *DatabaseManager) HealthCheck(ctx context.Context) map[string]error
- func (dm *DatabaseManager) IsProviderConnected(providerName string) bool
- func (dm *DatabaseManager) Ping(ctx context.Context, providerName string) error
- func (dm *DatabaseManager) Prepare(ctx context.Context, providerName, query string) (PreparedStatement, error)
- func (dm *DatabaseManager) Query(ctx context.Context, providerName, query string, args ...interface{}) (QueryResult, error)
- func (dm *DatabaseManager) QueryRow(ctx context.Context, providerName, query string, args ...interface{}) (Row, error)
- func (dm *DatabaseManager) RegisterProvider(provider DatabaseProvider) error
- func (dm *DatabaseManager) WithTransaction(ctx context.Context, providerName string, fn func(Transaction) error) error
- type DatabaseProvider
- type DatabaseStats
- type ExecResult
- type ManagerConfig
- type PreparedStatement
- type QueryResult
- type Row
- type Transaction
Constants ΒΆ
This section is empty.
Variables ΒΆ
This section is empty.
Functions ΒΆ
This section is empty.
Types ΒΆ
type ConnectionInfo ΒΆ
type ConnectionInfo struct {
Host string `json:"host"`
Port int `json:"port"`
Database string `json:"database"`
User string `json:"user"`
Driver string `json:"driver"`
Version string `json:"version"`
}
ConnectionInfo represents database connection information
type DatabaseFeature ΒΆ
type DatabaseFeature string
DatabaseFeature represents a database feature
const ( FeatureTransactions DatabaseFeature = "transactions" FeaturePreparedStmts DatabaseFeature = "prepared_statements" FeatureConnectionPool DatabaseFeature = "connection_pool" FeatureReadReplicas DatabaseFeature = "read_replicas" FeatureClustering DatabaseFeature = "clustering" FeatureSharding DatabaseFeature = "sharding" FeatureFullTextSearch DatabaseFeature = "full_text_search" FeatureJSONSupport DatabaseFeature = "json_support" FeatureGeoSpatial DatabaseFeature = "geo_spatial" FeatureTimeSeries DatabaseFeature = "time_series" FeatureGraphDB DatabaseFeature = "graph_db" FeatureKeyValue DatabaseFeature = "key_value" FeatureDocumentStore DatabaseFeature = "document_store" FeatureColumnFamily DatabaseFeature = "column_family" FeatureInMemory DatabaseFeature = "in_memory" FeaturePersistent DatabaseFeature = "persistent" )
type DatabaseManager ΒΆ
type DatabaseManager struct {
// contains filtered or unexported fields
}
DatabaseManager manages multiple database providers
func NewDatabaseManager ΒΆ
func NewDatabaseManager(config *ManagerConfig, logger *logrus.Logger) *DatabaseManager
NewDatabaseManager creates a new database manager
func (*DatabaseManager) BeginTransaction ΒΆ
func (dm *DatabaseManager) BeginTransaction(ctx context.Context, providerName string) (Transaction, error)
BeginTransaction begins a transaction using the specified provider
func (*DatabaseManager) Close ΒΆ
func (dm *DatabaseManager) Close() error
Close closes all database connections
func (*DatabaseManager) Connect ΒΆ
func (dm *DatabaseManager) Connect(ctx context.Context, providerName string) error
Connect connects to a database using the specified provider
func (*DatabaseManager) Disconnect ΒΆ
func (dm *DatabaseManager) Disconnect(ctx context.Context, providerName string) error
Disconnect disconnects from a database using the specified provider
func (*DatabaseManager) Exec ΒΆ
func (dm *DatabaseManager) Exec(ctx context.Context, providerName, query string, args ...interface{}) (ExecResult, error)
Exec executes a query without returning rows using the specified provider
func (*DatabaseManager) GetConnectedProviders ΒΆ
func (dm *DatabaseManager) GetConnectedProviders() []string
GetConnectedProviders returns a list of connected providers
func (*DatabaseManager) GetDefaultProvider ΒΆ
func (dm *DatabaseManager) GetDefaultProvider() (DatabaseProvider, error)
GetDefaultProvider returns the default database provider
func (*DatabaseManager) GetProvider ΒΆ
func (dm *DatabaseManager) GetProvider(name string) (DatabaseProvider, error)
GetProvider returns a database provider by name
func (*DatabaseManager) GetProviderCapabilities ΒΆ
func (dm *DatabaseManager) GetProviderCapabilities(providerName string) ([]DatabaseFeature, *ConnectionInfo, error)
GetProviderCapabilities returns capabilities of a provider
func (*DatabaseManager) GetStats ΒΆ
func (dm *DatabaseManager) GetStats(ctx context.Context, providerName string) (*DatabaseStats, error)
GetStats gets statistics from a provider
func (*DatabaseManager) GetSupportedProviders ΒΆ
func (dm *DatabaseManager) GetSupportedProviders() []string
GetSupportedProviders returns a list of registered providers
func (*DatabaseManager) HealthCheck ΒΆ
func (dm *DatabaseManager) HealthCheck(ctx context.Context) map[string]error
HealthCheck performs health check on all providers
func (*DatabaseManager) IsProviderConnected ΒΆ
func (dm *DatabaseManager) IsProviderConnected(providerName string) bool
IsProviderConnected checks if a provider is connected
func (*DatabaseManager) Ping ΒΆ
func (dm *DatabaseManager) Ping(ctx context.Context, providerName string) error
Ping pings a database using the specified provider
func (*DatabaseManager) Prepare ΒΆ
func (dm *DatabaseManager) Prepare(ctx context.Context, providerName, query string) (PreparedStatement, error)
Prepare prepares a statement using the specified provider
func (*DatabaseManager) Query ΒΆ
func (dm *DatabaseManager) Query(ctx context.Context, providerName, query string, args ...interface{}) (QueryResult, error)
Query executes a query using the specified provider
func (*DatabaseManager) QueryRow ΒΆ
func (dm *DatabaseManager) QueryRow(ctx context.Context, providerName, query string, args ...interface{}) (Row, error)
QueryRow executes a query that returns a single row using the specified provider
func (*DatabaseManager) RegisterProvider ΒΆ
func (dm *DatabaseManager) RegisterProvider(provider DatabaseProvider) error
RegisterProvider registers a database provider
func (*DatabaseManager) WithTransaction ΒΆ
func (dm *DatabaseManager) WithTransaction(ctx context.Context, providerName string, fn func(Transaction) error) error
WithTransaction executes a function within a transaction using the specified provider
type DatabaseProvider ΒΆ
type DatabaseProvider interface {
// Provider information
GetName() string
GetSupportedFeatures() []DatabaseFeature
GetConnectionInfo() *ConnectionInfo
// Connection management
Connect(ctx context.Context) error
Disconnect(ctx context.Context) error
Ping(ctx context.Context) error
IsConnected() bool
// Transaction management
BeginTransaction(ctx context.Context) (Transaction, error)
WithTransaction(ctx context.Context, fn func(Transaction) error) error
// Query operations
Query(ctx context.Context, query string, args ...interface{}) (QueryResult, error)
QueryRow(ctx context.Context, query string, args ...interface{}) (Row, error)
Exec(ctx context.Context, query string, args ...interface{}) (ExecResult, error)
// Prepared statements
Prepare(ctx context.Context, query string) (PreparedStatement, error)
// Health and monitoring
HealthCheck(ctx context.Context) error
GetStats(ctx context.Context) (*DatabaseStats, error)
// Configuration
Configure(config map[string]interface{}) error
IsConfigured() bool
Close() error
}
DatabaseProvider interface for database backends
type DatabaseStats ΒΆ
type DatabaseStats struct {
ActiveConnections int `json:"active_connections"`
IdleConnections int `json:"idle_connections"`
MaxConnections int `json:"max_connections"`
WaitCount int64 `json:"wait_count"`
WaitDuration time.Duration `json:"wait_duration"`
MaxIdleClosed int64 `json:"max_idle_closed"`
MaxIdleTimeClosed int64 `json:"max_idle_time_closed"`
MaxLifetimeClosed int64 `json:"max_lifetime_closed"`
ProviderData map[string]interface{} `json:"provider_data"`
}
DatabaseStats represents database statistics
type ExecResult ΒΆ
ExecResult represents the result of an execution
type ManagerConfig ΒΆ
type ManagerConfig struct {
DefaultProvider string `json:"default_provider"`
RetryAttempts int `json:"retry_attempts"`
RetryDelay time.Duration `json:"retry_delay"`
Timeout time.Duration `json:"timeout"`
MaxConnections int `json:"max_connections"`
Metadata map[string]string `json:"metadata"`
}
ManagerConfig holds database manager configuration
func DefaultManagerConfig ΒΆ
func DefaultManagerConfig() *ManagerConfig
DefaultManagerConfig returns default database manager configuration
type PreparedStatement ΒΆ
type PreparedStatement interface {
Close() error
Query(ctx context.Context, args ...interface{}) (QueryResult, error)
QueryRow(ctx context.Context, args ...interface{}) (Row, error)
Exec(ctx context.Context, args ...interface{}) (ExecResult, error)
}
PreparedStatement represents a prepared statement
type QueryResult ΒΆ
type QueryResult interface {
Close() error
Next() bool
Scan(dest ...interface{}) error
Columns() ([]string, error)
Err() error
}
QueryResult represents the result of a query
type Transaction ΒΆ
type Transaction interface {
Commit() error
Rollback() error
Query(ctx context.Context, query string, args ...interface{}) (QueryResult, error)
QueryRow(ctx context.Context, query string, args ...interface{}) (Row, error)
Exec(ctx context.Context, query string, args ...interface{}) (ExecResult, error)
Prepare(ctx context.Context, query string) (PreparedStatement, error)
}
Transaction represents a database transaction