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

Merge branch 'dev' of github.com:XiaoMi/soar into dev

......@@ -423,21 +423,26 @@ func (vEnv *VirtualEnv) createDatabase(rEnv *database.Connector) error {
}
/*
@input:
@input:
database.Connector 为一个线上环境数据库连接句柄的复制,因为在处理SQL时需要对上下文进行关联处理,
所以存在修改DB连接参数(主要是数据库名称变更)的可能性,为了不影响整体上下文的环境,所以需要一个镜像句柄来做当前环境的操作。
dbName, tbName: 需要在环境中操作的库表名称,
@output:
@output:
return 执行过程中的错误
NOTE:
NOTE:
该函数会将线上环境中使用到的库表结构复制到测试环境中,为后续操作提供基础环境。
传入的库表名称均来自于对AST的解析,库表名称的获取遵循以下原则:
如果未在SQL中指定数据库名称,则数据库一定是配置文件(或命令行参数传入DSN)中指定的数据库
如果一个SQL中存在多个数据库,则只能有一个数据库是没有在SQL中被显示指定的(即DSN中指定的数据库)
TODO:
TODO:
在一些可能的情况下,由于数据库配置的不一致(如SQL_MODE不同)导致remote环境的库表无法正确的在测试环境进行同步,
soar 能够做出判断并进行 session 级别的修改,但是这一阶段可用性保证应该是由用户提供两个完全相同(或测试环境兼容线上环境)
的数据库环境来实现的。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册