diff --git a/common/config.go b/common/config.go index ccb086fa86b9e2d627dc506e09c3f0ca3b1549cf..2f65289c5e2ff718d374f3fa68cce109a3f7dc74 100644 --- a/common/config.go +++ b/common/config.go @@ -54,6 +54,7 @@ type Configuration struct { OnlineDSN *Dsn `yaml:"online-dsn"` // 线上环境数据库配置 TestDSN *Dsn `yaml:"test-dsn"` // 测试环境数据库配置 AllowOnlineAsTest bool `yaml:"allow-online-as-test"` // 允许 Online 环境也可以当作 Test 环境 + DisableVersionCheck bool `yaml:"disable-version-check"` // 是否禁用环境检测,开启后表示允许测试环境版本低于线上环境 不建议开启,可能会导致语句执行异常 DropTestTemporary bool `yaml:"drop-test-temporary"` // 是否清理Test环境产生的临时库表 CleanupTestDatabase bool `yaml:"cleanup-test-database"` // 清理残余的测试数据库(程序异常退出或未开启drop-test-temporary) issue #48 OnlySyntaxCheck bool `yaml:"only-syntax-check"` // 只做语法检查不输出优化建议 diff --git a/doc/config.md b/doc/config.md index 4582468523f7c47a56191bcca05cee797400ffd5..cedd6b7f240fd59b8243b1391e68aa9f72174602 100644 --- a/doc/config.md +++ b/doc/config.md @@ -23,6 +23,8 @@ test-dsn: disable: false # 是否允许测试环境与线上环境配置相同 allow-online-as-test: true +# 是否禁用环境检测,开启后表示允许测试环境版本低于线上环境 不建议开启,可能会导致语句执行异常 +disable-version-check: false # 是否清理测试时产生的临时文件 drop-test-temporary: true # 语法检查小工具 diff --git a/env/env.go b/env/env.go index 18b4e40116e00be886ee5a16f73bc201ed973f7a..facf71b0d59a501c8885ef0cdbf64f1abb46b866 100644 --- a/env/env.go +++ b/env/env.go @@ -99,10 +99,13 @@ func BuildEnv() (*VirtualEnv, *database.Connector) { common.Config.OnlineDSN.Disable = true } - // 判断测试环境与线上环境版本是否一致,要求测试环境版本不低于线上环境 - if vEnvVersion < rEnvVersion { - common.Log.Warning("TestDSN MySQL version older than OnlineDSN(%d), TestDSN(%d) will not be used", rEnvVersion, vEnvVersion) - common.Config.TestDSN.Disable = true + // 是否禁用版本检测,禁用后,不再对比测试环境和线上环境的版本大小 + if !common.Config.DisableVersionCheck { + // 判断测试环境与线上环境版本是否一致,要求测试环境版本不低于线上环境 + if vEnvVersion < rEnvVersion { + common.Log.Warning("TestDSN MySQL version older than OnlineDSN(%d), TestDSN(%d) will not be used", rEnvVersion, vEnvVersion) + common.Config.TestDSN.Disable = true + } } return vEnv, connOnline diff --git a/etc/soar.yaml b/etc/soar.yaml index ee9760f5194d131a8186e4c532c3d87b374129ab..ec47e961b3c8630dd521aec783f3712f72987fbb 100644 --- a/etc/soar.yaml +++ b/etc/soar.yaml @@ -15,6 +15,7 @@ test-dsn: # 高危,仅测试时使用,线上环境禁止配置为 true allow-online-as-test: true +disable-version-check: false column-not-allow-type: - json - text