我无法使用此命令从MySQL服务器生成changelog文件
liquibase
--driver=com.mysql.cj.jdbc.Driver
--classpath=\path\to\mysql-connector-java-6.0.6.jar
--changeLogFile=com\example\db.changelog.yaml
--url=jdbc:mysql:http://hostip:3306/schemaName
--username=scott
--password=tiger
generateChangeLog
这总是返回 - "表名模式不能为NULL或空",而我只有2个表,而且它们都有一个名字。
也许我需要提一下,整个DDL是由Hibernate制作的,我只是将DDL导出并导入模式。
这是一个Spring Boot项目。
答案 0 :(得分:2)
您正在使用最新版本的MySQL驱动程序。在这些版本中,默认情况下,nullNamePatternMatchesAll参数的值为false。我不确定你是否可以强制你的JDBC连接字符串,并以某种方式添加?nullNamePatternMatchesAll = true到你的网址,使它有效地
--url = JDBC:MySQL的://主机IP:3306 / SCHEMANAME nullNamePatternMatchesAll =真
或者如果不起作用,请降级JDBC驱动程序。
这是一个JDBC元数据检索层的问题,Liquibase显然依赖它。
有关详细信息,请在此处查看示例:"Table name pattern can not be NULL or empty" in java
答案 1 :(得分:0)
尝试添加属性:defaultSchemaName=yourSchemaName