| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package subconfigs
-
- import "fmt"
-
- // DatabaseConfig 数据库配置
- type DatabaseConfig struct {
- BaseConfig
- Type string `yaml:"type"`
- Host string `yaml:"host"`
- Port int `yaml:"port"`
- Username string `yaml:"username"`
- Password string `yaml:"password"`
- Database string `yaml:"database"`
- MaxOpenConns int `yaml:"max_open_conns"`
- MaxIdleConns int `yaml:"max_idle_conns"`
- ConnMaxLifetime int `yaml:"conn_max_lifetime"`
- }
-
- // NewDatabaseConfig 创建数据库配置实例
- func NewDatabaseConfig() *DatabaseConfig {
- return &DatabaseConfig{}
- }
-
- // SetDefaults 设置默认值
- func (c *DatabaseConfig) SetDefaults() {
- c.Type = "mysql"
- c.Port = 3306
- c.MaxOpenConns = 100
- c.MaxIdleConns = 20
- c.ConnMaxLifetime = 3600
- }
-
- // Load 从yaml数据加载
- func (c *DatabaseConfig) Load(data map[string]interface{}) error {
- return c.LoadFromYAML(data, c)
- }
-
- // Validate 验证配置
- func (c *DatabaseConfig) Validate() error {
- if c.Type == "" {
- return fmt.Errorf("database type is required")
- }
- return nil
- }
-
- // IsConfigured 判断是否已配置
- func (c *DatabaseConfig) IsConfigured() bool {
- return c.Host != "" && c.Port > 0 && c.Username != "" && c.Database != ""
- }
-
- // 自动注册
- func init() {
- Register("database", &DatabaseConfig{})
- }
|