我正在尝试在命令提示符下执行命令:
liquibase --driver=com.mysql.jdbc.Driver --classpath=E:mysqljarmysql.jar --changeLogFile=E:1.xml --url="jdbc:mysql://localhost:3306/abc" --username=root --password=root generateChangeLog
但是我收到此错误:
数据库更新失败:结果集为空,预期为一行 严重 24/9/13 6:29 PM:liquibase:空结果集,预期一行 liquibase.exception.DatabaseException: 获取 jdbc:mysql://localhost:3306/abc view with liquibase.statement.core.GetViewDefinitionStatement@53330681 时出错 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( at liquibase.diff.Diff.compare(Diff.java:63( at liquibase.integration.commandline.CommandLineUtils.doGenerateChangeLog(CommandLineUtils.java:145( at liquibase.integration.commandline.Main.doMigration(Main.java:760( at 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 更多
谁能帮我解释一下?
我遇到了同样的问题。
我的修复:database change log lock
表中需要有一个条目;它需要将 id=1
、 locked=false
和其余值设置为 null
。
我也在使用MySQL时遇到同样的错误,并尝试了liquibase的v3.0.0和3.0.5。 当我尝试进行迁移以及生成更改日志时,错误是相同的。
./liquibase --logLevel=debug --changeLogFile=./db.changelog-test-v0.1.xml --用户名=abc --password=abc99 --url="jdbc:mysql://localhost:3306/test" migrate
仅供参考,这是它在执行"迁移"命令时遇到问题的选择语句:
从 information_schema.views 中选择view_definition,其中 table_name='patient_info' 和 table_schema='test'
information_schema.views 表为空。