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**
|
- **2025.01.01**
|
||||||
- 支持自托管消息,现在可以将站点作为消息的接受,登录站点查看消息
|
- 支持自托管消息,现在可以将站点作为消息的接受,登录站点查看消息
|
||||||
- **2024.04.29**
|
- **2024.04.29**
|
||||||
- 支持 SQLite 部署
|
- 支持 SQLite 部署
|
||||||
- 支持MySQL 5.x 8.x
|
- 支持MySQL 5.x 8.x
|
||||||
@@ -330,6 +334,7 @@ docker-compose up -d
|
|||||||
| MYSQL_PASSWORD | mysql数据库密码,DB_TYPE=mysql必填 |
|
| MYSQL_PASSWORD | mysql数据库密码,DB_TYPE=mysql必填 |
|
||||||
| MYSQL_DB | mysql数据库名字,DB_TYPE=mysql必填 |
|
| MYSQL_DB | mysql数据库名字,DB_TYPE=mysql必填 |
|
||||||
| MYSQL_TABLE_PREFIX | mysql数据表前缀,DB_TYPE=mysql必填 |
|
| MYSQL_TABLE_PREFIX | mysql数据表前缀,DB_TYPE=mysql必填 |
|
||||||
|
| SSL | 是否开启SSL |
|
||||||
| | |
|
| | |
|
||||||
| SQL_DEBUG | 是否打印SQL,可选,默认关,设置enable为开启 |
|
| SQL_DEBUG | 是否打印SQL,可选,默认关,设置enable为开启 |
|
||||||
|
|
||||||
|
|||||||
@@ -23,4 +23,8 @@ Host = 123.1.1.1
|
|||||||
Name = db_name
|
Name = db_name
|
||||||
Port = 3306
|
Port = 3306
|
||||||
TablePrefix = message_
|
TablePrefix = message_
|
||||||
|
|
||||||
|
; ssl enable, value: [false | true]
|
||||||
|
Ssl = true
|
||||||
|
|
||||||
; SqlDebug = enable
|
; SqlDebug = enable
|
||||||
|
|||||||
+20
-6
@@ -34,12 +34,6 @@ type UUIDModel struct {
|
|||||||
// Setup initializes the database instance
|
// Setup initializes the database instance
|
||||||
func Setup() *gorm.DB {
|
func Setup() *gorm.DB {
|
||||||
var err error
|
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{
|
config := &gorm.Config{
|
||||||
NamingStrategy: schema.NamingStrategy{
|
NamingStrategy: schema.NamingStrategy{
|
||||||
@@ -50,6 +44,26 @@ func Setup() *gorm.DB {
|
|||||||
|
|
||||||
switch setting.DatabaseSetting.Type {
|
switch setting.DatabaseSetting.Type {
|
||||||
case "mysql":
|
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)
|
db, err = gorm.Open(mysql.Open(connStr), config)
|
||||||
case "sqlite":
|
case "sqlite":
|
||||||
db, err = gorm.Open(sqlite.Open("conf/database.db"), config)
|
db, err = gorm.Open(sqlite.Open("conf/database.db"), config)
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ func loadConfigFromEnv() {
|
|||||||
ServerSetting.WriteTimeout = 60
|
ServerSetting.WriteTimeout = 60
|
||||||
|
|
||||||
DatabaseSetting.Type = getOptionEnvValue("DB_TYPE", "sqlite")
|
DatabaseSetting.Type = getOptionEnvValue("DB_TYPE", "sqlite")
|
||||||
|
DatabaseSetting.Ssl = getOptionEnvValue("SSL", "false")
|
||||||
|
|
||||||
if DatabaseSetting.Type == "mysql" {
|
if DatabaseSetting.Type == "mysql" {
|
||||||
DatabaseSetting.Host = getMustEnvValue("MYSQL_HOST")
|
DatabaseSetting.Host = getMustEnvValue("MYSQL_HOST")
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ type Database struct {
|
|||||||
Name string
|
Name string
|
||||||
TablePrefix string
|
TablePrefix string
|
||||||
SqlDebug string
|
SqlDebug string
|
||||||
|
Ssl string
|
||||||
}
|
}
|
||||||
|
|
||||||
var DatabaseSetting = &Database{}
|
var DatabaseSetting = &Database{}
|
||||||
|
|||||||
Reference in New Issue
Block a user