升级数据库时同时升级edgeClientAgentIPs中的countIPs字段值

This commit is contained in:
刘祥超
2023-01-07 10:29:08 +08:00
parent e70c49d407
commit c02928dd44
3 changed files with 55 additions and 4 deletions

View File

@@ -52,6 +52,7 @@ var recordsTables = []*SQLRecordsTable{
{ {
TableName: "edgeClientAgents", TableName: "edgeClientAgents",
UniqueFields: []string{"code"}, UniqueFields: []string{"code"},
ExceptFields: []string{"countIPs"},
}, },
{ {
TableName: "edgeClientAgentIPs", TableName: "edgeClientAgentIPs",

View File

@@ -124,6 +124,12 @@ func (this *SQLExecutor) checkData(db *dbs.DB) error {
return err return err
} }
// 更新Agents
err = this.checkClientAgents(db)
if err != nil {
return err
}
// 更新版本号 // 更新版本号
err = this.updateVersion(db, ComposeSQLVersion()) err = this.updateVersion(db, ComposeSQLVersion())
if err != nil { if err != nil {
@@ -471,6 +477,29 @@ func (this *SQLExecutor) checkMetricItems(db *dbs.DB) error {
return nil return nil
} }
// 更新Agents表
func (this *SQLExecutor) checkClientAgents(db *dbs.DB) error {
ones, _, err := db.FindOnes("SELECT id FROM edgeClientAgents")
if err != nil {
return err
}
for _, one := range ones {
var agentId = one.GetInt64("id")
countIPs, err := db.FindCol(0, "SELECT COUNT(*) FROM edgeClientAgentIPs WHERE agentId=?", agentId)
if err != nil {
return err
}
_, err = db.Exec("UPDATE edgeClientAgents SET countIPs=? WHERE id=?", countIPs, agentId)
if err != nil {
return err
}
}
return nil
}
// 更新版本号 // 更新版本号
func (this *SQLExecutor) updateVersion(db *dbs.DB, version string) error { func (this *SQLExecutor) updateVersion(db *dbs.DB, version string) error {
stmt, err := db.Prepare("SELECT COUNT(*) FROM edgeVersions") stmt, err := db.Prepare("SELECT COUNT(*) FROM edgeVersions")

View File

@@ -6,7 +6,7 @@ import (
) )
func TestSQLExecutor_Run(t *testing.T) { func TestSQLExecutor_Run(t *testing.T) {
executor := NewSQLExecutor(&dbs.DBConfig{ var executor = NewSQLExecutor(&dbs.DBConfig{
Driver: "mysql", Driver: "mysql",
Prefix: "edge", Prefix: "edge",
Dsn: "root:123456@tcp(127.0.0.1:3306)/db_edge_new?charset=utf8mb4&multiStatements=true", Dsn: "root:123456@tcp(127.0.0.1:3306)/db_edge_new?charset=utf8mb4&multiStatements=true",
@@ -19,7 +19,7 @@ func TestSQLExecutor_Run(t *testing.T) {
} }
func TestSQLExecutor_checkCluster(t *testing.T) { func TestSQLExecutor_checkCluster(t *testing.T) {
executor := NewSQLExecutor(&dbs.DBConfig{ var executor = NewSQLExecutor(&dbs.DBConfig{
Driver: "mysql", Driver: "mysql",
Prefix: "edge", Prefix: "edge",
Dsn: "root:123456@tcp(127.0.0.1:3306)/db_edge_new?charset=utf8mb4&multiStatements=true", Dsn: "root:123456@tcp(127.0.0.1:3306)/db_edge_new?charset=utf8mb4&multiStatements=true",
@@ -40,7 +40,7 @@ func TestSQLExecutor_checkCluster(t *testing.T) {
} }
func TestSQLExecutor_checkMetricItems(t *testing.T) { func TestSQLExecutor_checkMetricItems(t *testing.T) {
executor := NewSQLExecutor(&dbs.DBConfig{ var executor = NewSQLExecutor(&dbs.DBConfig{
Driver: "mysql", Driver: "mysql",
Prefix: "edge", Prefix: "edge",
Dsn: "root:123456@tcp(127.0.0.1:3306)/db_edge_new?charset=utf8mb4&multiStatements=true", Dsn: "root:123456@tcp(127.0.0.1:3306)/db_edge_new?charset=utf8mb4&multiStatements=true",
@@ -61,7 +61,7 @@ func TestSQLExecutor_checkMetricItems(t *testing.T) {
} }
func TestSQLExecutor_checkNS(t *testing.T) { func TestSQLExecutor_checkNS(t *testing.T) {
executor := NewSQLExecutor(&dbs.DBConfig{ var executor = NewSQLExecutor(&dbs.DBConfig{
Driver: "mysql", Driver: "mysql",
Prefix: "edge", Prefix: "edge",
Dsn: "root:123456@tcp(127.0.0.1:3306)/db_edge_new?charset=utf8mb4&multiStatements=true", Dsn: "root:123456@tcp(127.0.0.1:3306)/db_edge_new?charset=utf8mb4&multiStatements=true",
@@ -80,3 +80,24 @@ func TestSQLExecutor_checkNS(t *testing.T) {
} }
t.Log("ok") t.Log("ok")
} }
func TestSQLExecutor_checkClientAgents(t *testing.T) {
var executor = NewSQLExecutor(&dbs.DBConfig{
Driver: "mysql",
Prefix: "edge",
Dsn: "root:123456@tcp(127.0.0.1:3306)/db_edge?charset=utf8mb4&multiStatements=true",
})
db, err := dbs.NewInstanceFromConfig(executor.dbConfig)
if err != nil {
t.Fatal(err)
}
defer func() {
_ = db.Close()
}()
err = executor.checkClientAgents(db)
if err != nil {
t.Fatal(err)
}
t.Log("ok")
}