我们有utf8 sql文件并使用liquibase。我从头开始设置liquibase并且遇到了mysf的utf8编码的sql文件的问题。
我将所有内容从env变量设置为mysql连接字符串,以保证使用utf8编码,但没有任何效果。我尝试过Tipps:设置env like file.encoding,将utf8设置为mysql连接的连接字符串,设置数据库,客户端和服务器的编码。
从Liquibase 3.5.1切换到3.4.2。
是否有某些内容改变了行为,或者Liquibase 3.5.1在如何正确处理utf8文件方面有新的/不同的行为?
示例当我使用3.5.1而不是3.4.2时出现错误消息(没有其他不同之处): “运行Liquibase时出现意外错误:您的SQL语法出错;请查看与您的MySQL服务器版本对应的手册,以便在'INSERT INTO'附近使用正确的语法...
答案 0 :(得分:4)
@sigi我可能在启动版本3.5.0(3.5.1)
时遇到了同样的问题令牌错误表明必须使用版本3.5中添加的词法分析
https://liquibase.jira.com/projects/CORE/issues/CORE-2843
已在3.5.2版中修复
SimpleSqlGrammer.jj
S_CHAR_LITERAL didn't support the escaped single quote within a string literal \'
快速解决方法是用两个引号'' 替换转义单引号 \' ,这在MySQL字符串中也运行良好文字