Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql grails db迁移dbm更新命令失败_Postgresql_Grails_Grails Plugin_Database Migration - Fatal编程技术网

Postgresql grails db迁移dbm更新命令失败

Postgresql grails db迁移dbm更新命令失败,postgresql,grails,grails-plugin,database-migration,Postgresql,Grails,Grails Plugin,Database Migration,我在grails db migration 1.4.0插件中使用grails 2.4.2和postgresql。每当我发出grails dbm update命令时,就会出现以下异常,从而导致表创建失败: Starting dbm-update for database user @ jdbc:postgresql://localhost:5432/mydb liquibase.exception.LockException: liquibase.exception.DatabaseExc

我在grails db migration 1.4.0插件中使用grails 2.4.2和postgresql。每当我发出grails dbm update命令时,就会出现以下异常,从而导致表创建失败:

    Starting dbm-update for database user @ jdbc:postgresql://localhost:5432/mydb
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 DbmUpdate$_run_closure1_closure2.doCall(DbmUpdate:26)
    at DbmUpdate$_run_closure2_closure11.doCall(DbmUpdate:59)
    at grails.plugin.databasemigration.MigrationUtils.executeInSession(MigrationUtils.groovy:133)
    at DbmUpdate$_run_closure2.doCall(DbmUpdate:51)
    at DbmUpdate$_run_closure1.doCall(DbmUpdate:25)
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)
    ... 7 more

任何帮助都将不胜感激。

看来Liquibase没有正确初始化。检查表DatabaseChangeLogLock中是否有行我想我已经找到了答案。在发出命令之前,我曾经删除DATABASECHANGELOG和databasechangeloglock表,这导致了上述问题。有一次,我刚刚删除了DATABASECHANGELOG,使得DATABASECHANGELOGLOCK仍然包含一行,并且命令运行良好。无论如何,谢谢你的提示。