feat: add tidb support and tls suppport
This commit is contained in:
@@ -24,8 +24,12 @@ Message Nest 是一个灵活而强大的消息推送整合平台,旨在简化
|
||||
|
||||
## 功能更新日志
|
||||
|
||||
- **2025.04.28**
|
||||
- 支持tidb作为存储,支持数据库ssl配置
|
||||
- docker运行指定环境变量SSL=true
|
||||
- ini配置文件运行指定环境变量Ssl=true
|
||||
- **2025.01.01**
|
||||
- 支持自托管消息,现在可以将站点作为消息的接受,登录站点查看消息
|
||||
- 支持自托管消息,现在可以将站点作为消息的接受,登录站点查看消息
|
||||
- **2024.04.29**
|
||||
- 支持 SQLite 部署
|
||||
- 支持MySQL 5.x 8.x
|
||||
@@ -330,6 +334,7 @@ docker-compose up -d
|
||||
| MYSQL_PASSWORD | mysql数据库密码,DB_TYPE=mysql必填 |
|
||||
| MYSQL_DB | mysql数据库名字,DB_TYPE=mysql必填 |
|
||||
| MYSQL_TABLE_PREFIX | mysql数据表前缀,DB_TYPE=mysql必填 |
|
||||
| SSL | 是否开启SSL |
|
||||
| | |
|
||||
| SQL_DEBUG | 是否打印SQL,可选,默认关,设置enable为开启 |
|
||||
|
||||
|
||||
@@ -23,4 +23,8 @@ Host = 123.1.1.1
|
||||
Name = db_name
|
||||
Port = 3306
|
||||
TablePrefix = message_
|
||||
|
||||
; ssl enable, value: [false | true]
|
||||
Ssl = true
|
||||
|
||||
; SqlDebug = enable
|
||||
|
||||
+20
-6
@@ -34,12 +34,6 @@ type UUIDModel struct {
|
||||
// Setup initializes the database instance
|
||||
func Setup() *gorm.DB {
|
||||
var err error
|
||||
connStr := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local",
|
||||
setting.DatabaseSetting.User,
|
||||
setting.DatabaseSetting.Password,
|
||||
setting.DatabaseSetting.Host,
|
||||
setting.DatabaseSetting.Port,
|
||||
setting.DatabaseSetting.Name)
|
||||
|
||||
config := &gorm.Config{
|
||||
NamingStrategy: schema.NamingStrategy{
|
||||
@@ -50,6 +44,26 @@ func Setup() *gorm.DB {
|
||||
|
||||
switch setting.DatabaseSetting.Type {
|
||||
case "mysql":
|
||||
connStr := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local",
|
||||
setting.DatabaseSetting.User,
|
||||
setting.DatabaseSetting.Password,
|
||||
setting.DatabaseSetting.Host,
|
||||
setting.DatabaseSetting.Port,
|
||||
setting.DatabaseSetting.Name)
|
||||
if setting.DatabaseSetting.Ssl != "false" {
|
||||
connStr += fmt.Sprintf("&tls=%s", setting.DatabaseSetting.Ssl)
|
||||
}
|
||||
db, err = gorm.Open(mysql.Open(connStr), config)
|
||||
case "tidb":
|
||||
connStr := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4",
|
||||
setting.DatabaseSetting.User,
|
||||
setting.DatabaseSetting.Password,
|
||||
setting.DatabaseSetting.Host,
|
||||
setting.DatabaseSetting.Port,
|
||||
setting.DatabaseSetting.Name)
|
||||
if setting.DatabaseSetting.Ssl != "false" {
|
||||
connStr += fmt.Sprintf("&tls=%s", setting.DatabaseSetting.Ssl)
|
||||
}
|
||||
db, err = gorm.Open(mysql.Open(connStr), config)
|
||||
case "sqlite":
|
||||
db, err = gorm.Open(sqlite.Open("conf/database.db"), config)
|
||||
|
||||
@@ -50,6 +50,7 @@ func loadConfigFromEnv() {
|
||||
ServerSetting.WriteTimeout = 60
|
||||
|
||||
DatabaseSetting.Type = getOptionEnvValue("DB_TYPE", "sqlite")
|
||||
DatabaseSetting.Ssl = getOptionEnvValue("SSL", "false")
|
||||
|
||||
if DatabaseSetting.Type == "mysql" {
|
||||
DatabaseSetting.Host = getMustEnvValue("MYSQL_HOST")
|
||||
|
||||
@@ -38,6 +38,7 @@ type Database struct {
|
||||
Name string
|
||||
TablePrefix string
|
||||
SqlDebug string
|
||||
Ssl string
|
||||
}
|
||||
|
||||
var DatabaseSetting = &Database{}
|
||||
|
||||
Reference in New Issue
Block a user