Documentation
¶
Index ¶
- type DatabaseManager
- func (dm *DatabaseManager) BeginTransaction(ctx context.Context, providerName string) (types.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{}) (types.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) ([]types.DatabaseFeature, *types.ConnectionInfo, error)
- func (dm *DatabaseManager) GetStats(ctx context.Context, providerName string) (*types.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) (types.PreparedStatement, error)
- func (dm *DatabaseManager) Query(ctx context.Context, providerName, query string, args ...interface{}) (types.QueryResult, error)
- func (dm *DatabaseManager) QueryRow(ctx context.Context, providerName, query string, args ...interface{}) (types.Row, error)
- func (dm *DatabaseManager) RegisterProvider(provider DatabaseProvider) error
- func (dm *DatabaseManager) WithTransaction(ctx context.Context, providerName string, fn func(types.Transaction) error) error
- type DatabaseProvider
- type ManagerConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
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) (types.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{}) (types.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) ([]types.DatabaseFeature, *types.ConnectionInfo, error)
GetProviderCapabilities returns capabilities of a provider
func (*DatabaseManager) GetStats ¶
func (dm *DatabaseManager) GetStats(ctx context.Context, providerName string) (*types.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) (types.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{}) (types.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{}) (types.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(types.Transaction) error) error
WithTransaction executes a function within a transaction using the specified provider
type DatabaseProvider ¶
type DatabaseProvider interface {
// Provider information
GetName() string
GetSupportedFeatures() []types.DatabaseFeature
GetConnectionInfo() *types.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) (types.Transaction, error)
WithTransaction(ctx context.Context, fn func(types.Transaction) error) error
// Query operations
Query(ctx context.Context, query string, args ...interface{}) (types.QueryResult, error)
QueryRow(ctx context.Context, query string, args ...interface{}) (types.Row, error)
Exec(ctx context.Context, query string, args ...interface{}) (types.ExecResult, error)
// Prepared statements
Prepare(ctx context.Context, query string) (types.PreparedStatement, error)
// Health and monitoring
HealthCheck(ctx context.Context) error
GetStats(ctx context.Context) (*types.DatabaseStats, error)
// Configuration
Configure(config map[string]interface{}) error
IsConfigured() bool
Close() error
}
DatabaseProvider interface for database backends
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