【发布时间】:2016-05-10 00:36:52
【问题描述】:
我最近将 database-migration-plugin 添加到了我的 grails 3.0.11 应用程序中。问题是当我尝试运行应用程序时出现以下错误:
ERROR grails.boot.GrailsApp - Application startup failed
Exception in thread "main" org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'springLiquibase_dataSource':
Invocation of init method failed; nested exception is liquibase.exception.ChangeLogParseException:
java.lang.IllegalArgumentException: Script text to compile cannot be null!
看起来它在我的 grails-app/migrations 文件夹中找不到 changelog.xml。我的 build.gradle 文件包含:
buildscript {
dependencies {
classpath "org.grails.plugins:database-migration:2.0.0.RC1"
}
}
和
sourceSets {
main {
resources {
srcDir 'grails-app/migrations'
}
}
}
我还在 application.groovy 文件中添加了以下几行:
grails.plugin.databasemigration.updateOnStart = true
grails.plugin.databasemigration.updateOnStartFileNames = ['changelog.xml']
非常感谢任何关于如何使数据库迁移插件正常工作的建议。
编辑:
我使用$grails dbm-create-changelog 命令创建了changelog.xml 文件
我还添加到 build.gradle(如$grails plugin-info database-migration 命令所建议的那样):
dependencies {
compile "org.grails.plugins:database-migration:2.0.0.RC1"
}
然后我将其更改为(按照官方文档):
dependencies {
runtime "org.grails.plugins:database-migration:2.0.0.RC1"
}
然后(按照启动错误手册的建议)我强制使用 liquibase:
dependencies {
compile 'org.liquibase:liquibase-core:3.3.2'
runtime 'org.grails.plugins:database-migration:2.0.0.RC1'
}
和
dependencies {
compile 'org.liquibase:liquibase-core:3.3.2'
compile 'org.grails.plugins:database-migration:2.0.0.RC1'
}
问题依旧:java.lang.IllegalArgumentException: Script text to compile cannot be null!
【问题讨论】:
标签: grails liquibase grails-3.0