无法生成liquibase更改日志

时间:2013-09-24 13:04:26

标签: liquibase

我正在尝试在命令提示符下执行命令:

liquibase --driver=com.mysql.jdbc.Driver --classpath=E:\mysqljar\mysql.jar --changeLogFile=E:\1.xml --url="jdbc:mysql://localhost:3306/abc" --username=root --password=root generateChangeLog

但是我收到了这个错误:

  

Liquibase更新失败:空结果集,预期一行   SEVERE 24/9/13 6:29 PM:liquibase:空结果集,预计一行   liquibase.exception.DatabaseException:使用liquibase.statement.core.GetViewDefinitionStatement@53330681获取jdbc:mysql:// localhost:3306 / abc视图时出错           at liquibase.snapshot.jvm.JdbcDatabaseSnapshotGenerator.readView(JdbcDatabaseSnapshotGenerator.java:168)           at liquibase.snapshot.jvm.JdbcDatabaseSnapshotGenerator.readViews(JdbcDatabaseSnapshotGenerator.java:304)           at liquibase.snapshot.jvm.JdbcDatabaseSnapshotGenerator.createSnapshot(JdbcDatabaseSnapshotGenerator.java:241)           at liquibase.snapshot.DatabaseSnapshotGeneratorFactory.createSnapshot(DatabaseSnapshotGeneratorFactory.java:69)           在liquibase.diff.Diff.compare(Diff.java:63)           在liquibase.integration.commandline.CommandLineUtils.doGenerateChangeLog(CommandLineUtils.java:145)           at liquibase.integration.commandline.Main.doMigration(Main.java:760)           在liquibase.integration.commandline.Main.main(Main.java:134)   引起:liquibase.exception.DatabaseException:空结果集,预期一行           at liquibase.util.JdbcUtils.requiredSingleResult(JdbcUtils.java:124)           at liquibase.executor.jvm.JdbcExecutor.queryForObject(JdbcExecutor.java:159)           at liquibase.executor.jvm.JdbcExecutor.queryForObject(JdbcExecutor.java:167)           at liquibase.executor.jvm.JdbcExecutor.queryForObject(JdbcExecutor.java:163)           at liquibase.database.AbstractDatabase.getViewDefinition(AbstractDatabase.java:748)           at liquibase.snapshot.jvm.JdbcDatabaseSnapshotGenerator.readView(JdbcDatabaseSnapshotGenerator.java:166)           ......还有7个

有人可以帮我解释一下吗?

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。

我的解决方法: database change log lock表中需要有一个条目;它需要具有id=1locked=false和其余值设置为null

答案 1 :(得分:-1)

我也使用MySQL得到了同样的错误,并尝试了liquibase的v3.0.0和3.0.5。当我尝试执行迁移以及 generateChangeLog 时,错误是相同的。

./ liquibase --logLevel = debug --changeLogFile =。/ db.changelog-test-v0.1.xml --username = abc --password = abc99 --url =“jdbc:mysql:// localhost :3306 / test“迁移”

仅供参考,这是执行'migrate'命令时遇到问题的select语句:

从information_schema.views中选择view_definition,其中table_name ='patient_info'和table_schema ='test'

information_schema.views表为空。