首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Liquibase更新错误

Liquibase更新错误
EN

Stack Overflow用户
提问于 2013-10-01 22:39:46
回答 4查看 7.8K关注 0票数 11

我正在尝试使用Liquibase在数据库中创建几个表。

一些背景知识:我在一个本地h2数据库上执行了相同的changelog.xml文件,它成功地工作了。我用squirrel测试了下面的oracle数据库、用户名、密码和驱动程序,连接成功。所以我相当确定我正面临一个liquibase问题。我做了大量的谷歌搜索,没有在SO或其他任何地方找到任何对我有帮助的东西。

我在命令提示符中输入了以下内容:

代码语言:javascript
复制
C:\>java -jar liquibase-core-2.0.5.jar --driver=oracle.jdbc.OracleDriver
--classpath=ojdbc6-11.2.0.3.0.jar --changeLogFile=changelog.xml 
--url="jdbc:oracle:thin:@myDatabase"
--username=myUsername --password=myPassword --logLevel=debug update

返回:

代码语言:javascript
复制
DEBUG 9/30/13 3:09 PM:liquibase: Unable to load/access Apache Derby driver class
to check version
DEBUG 9/30/13 3:09 PM:liquibase: Connected to myUsername@jdbc:oracle:thin:@myDatabase
DEBUG 9/30/13 3:10 PM:liquibase: Executing QUERY database command: SELECT LOCKED
FROM DATABASECHANGELOGLOCK WHERE ID=1 FOR UPDATE
Liquibase Update Failed: Empty result set, expected one row
SEVERE 9/30/13 3:10 PM:liquibase: Empty result set, expected one row
liquibase.exception.LockException: liquibase.exception.DatabaseException: Empty
result set, expected one row
    at liquibase.lockservice.LockService.acquireLock(LockService.java:121)
    at liquibase.lockservice.LockService.waitForLock(LockService.java:61)
    at liquibase.Liquibase.update(Liquibase.java:102)
    at liquibase.integration.commandline.Main.doMigration(Main.java:825)
    at liquibase.integration.commandline.Main.main(Main.java:134)
Caused by: liquibase.exception.DatabaseException: Empty result set, expected one
row
    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.lockservice.LockService.acquireLock(LockService.java:96)
    ... 4 more
EN

回答 4

Stack Overflow用户

发布于 2013-10-02 01:21:59

我在这里找到了答案:https://forum.liquibase.org/t/message-regarding-an-empty-result-set-for-databasechangeloglock/1487/2

删除databasechangeloglock表为我解决了这个问题。

票数 14
EN

Stack Overflow用户

发布于 2014-11-12 00:50:28

如果您的DATABASECHANGELOGLOCK为空,则始终会出现该错误。(我在不小心删除了这个表的记录后遇到了这个问题)。

我找到的解决方案很简单:

只需使用ID=1、LOCKED=0、LOCKGRANTED=null、LOCKEDBY=null插入虚拟行

就这样!

票数 7
EN

Stack Overflow用户

发布于 2018-07-24 22:35:39

当我们尝试使用postgresql 10.4使用liquibase时,我们遇到了相同核心异常的问题:

代码语言:javascript
复制
Caused by: liquibase.exception.DatabaseException: Expected single row from 
liquibase.statement.core.GetViewDefinitionStatement@1de5f25 but got 0`

对我们来说,这似乎是jdbc驱动程序的问题。

我们的解决方案是将jdbc驱动程序从9.3-1102-jdbc41升级到9.4-1202-jdbc41。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19119115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档