提交 15f9e342 编写于 作者: martianzhang's avatar martianzhang

fix disable-version-check test case

 * code format
 * fix new merge feature disable-version-check test case
上级 08ca16c6
......@@ -1007,8 +1007,8 @@ func InitHeuristicRules() {
Severity: "L2",
Summary: "建表语句中定义为 ON UPDATE CURRENT_TIMESTAMP 的字段不建议包含业务逻辑",
Content: "定义为 ON UPDATE CURRENT_TIMESTAMP 的字段在该表其他字段更新时会联动修改,如果包含业务逻辑用户可见会埋下隐患。后续如有批量修改数据却又不想修改该字段时会导致数据错误。",
Case: `CREATE TABLE category (category_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(25) NOT NULL, last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (category_id)`,
Func: (*Query4Audit).RuleCreateOnUpdate,
Case: `CREATE TABLE category (category_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(25) NOT NULL, last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (category_id)`,
Func: (*Query4Audit).RuleCreateOnUpdate,
},
"RES.011": {
Item: "RES.011",
......
......@@ -39,6 +39,7 @@ test-dsn:
allow-old-passwords: false
disable: false
allow-online-as-test: true
disable-version-check: false
drop-test-temporary: true
cleanup-test-database: false
only-syntax-check: false
......
......@@ -423,24 +423,29 @@ func (vEnv *VirtualEnv) createDatabase(rEnv *database.Connector) error {
}
/*
@input:
database.Connector 为一个线上环境数据库连接句柄的复制,因为在处理SQL时需要对上下文进行关联处理,
所以存在修改DB连接参数(主要是数据库名称变更)的可能性,为了不影响整体上下文的环境,所以需要一个镜像句柄来做当前环境的操作。
dbName, tbName: 需要在环境中操作的库表名称,
@output:
return 执行过程中的错误
NOTE:
该函数会将线上环境中使用到的库表结构复制到测试环境中,为后续操作提供基础环境。
传入的库表名称均来自于对AST的解析,库表名称的获取遵循以下原则:
如果未在SQL中指定数据库名称,则数据库一定是配置文件(或命令行参数传入DSN)中指定的数据库
如果一个SQL中存在多个数据库,则只能有一个数据库是没有在SQL中被显示指定的(即DSN中指定的数据库)
TODO:
在一些可能的情况下,由于数据库配置的不一致(如SQL_MODE不同)导致remote环境的库表无法正确的在测试环境进行同步,
soar 能够做出判断并进行 session 级别的修改,但是这一阶段可用性保证应该是由用户提供两个完全相同(或测试环境兼容线上环境)
的数据库环境来实现的。
@input:
database.Connector 为一个线上环境数据库连接句柄的复制,因为在处理SQL时需要对上下文进行关联处理,
所以存在修改DB连接参数(主要是数据库名称变更)的可能性,为了不影响整体上下文的环境,所以需要一个镜像句柄来做当前环境的操作。
dbName, tbName: 需要在环境中操作的库表名称,
@output:
return 执行过程中的错误
NOTE:
该函数会将线上环境中使用到的库表结构复制到测试环境中,为后续操作提供基础环境。
传入的库表名称均来自于对AST的解析,库表名称的获取遵循以下原则:
如果未在SQL中指定数据库名称,则数据库一定是配置文件(或命令行参数传入DSN)中指定的数据库
如果一个SQL中存在多个数据库,则只能有一个数据库是没有在SQL中被显示指定的(即DSN中指定的数据库)
TODO:
在一些可能的情况下,由于数据库配置的不一致(如SQL_MODE不同)导致remote环境的库表无法正确的在测试环境进行同步,
soar 能够做出判断并进行 session 级别的修改,但是这一阶段可用性保证应该是由用户提供两个完全相同(或测试环境兼容线上环境)
的数据库环境来实现的。
*/
func (vEnv *VirtualEnv) createTable(rEnv *database.Connector, tbName string) error {
// 判断数据库是否已经创建
......
......@@ -39,6 +39,7 @@ test-dsn:
allow-old-passwords: true
disable: false
allow-online-as-test: true
disable-version-check: false
drop-test-temporary: false
cleanup-test-database: true
only-syntax-check: true
......
......@@ -39,6 +39,7 @@ test-dsn:
allow-old-passwords: false
disable: false
allow-online-as-test: false
disable-version-check: false
drop-test-temporary: true
cleanup-test-database: false
only-syntax-check: false
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册