1

我想(重新)使用命令“schema-export”创建我的数据库模式。DDL 生成工作正常,但如果我执行“模式导出导出”,我会收到以下错误,这表明配置文件中缺少某些内容。

grails> dev schema-export export
| Compiling 1 source files.....
Exporting in environment 'development' for the default DataSource
| Error 2012-08-24 14:45:57,466 [main] ERROR hbm2ddl.SchemaExport  - schema export unsuccessful
Message: No local DataSource found for configuration - 'dataSource' property must be set on LocalSessionFactoryBean
  Line | Method
->> 61 | doCall in SchemaExport$_run_closure1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| Error 2012-08-24 14:45:57,472 [main] ERROR hbm2ddl.SchemaExport  - schema export unsuccessful
Message: No local DataSource found for configuration - 'dataSource' property must be set on LocalSessionFactoryBean
  Line | Method
->> 64 | doCall in SchemaExport$_run_closure1
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

我的 DataSource.groovy 定义了一个“数据源”:

dataSource {
    pooled = true
    driverClassName = "com.mysql.jdbc.Driver"
}
...
environments {
    development {
        dataSource {
            username = "xxx"
            password = "yyy"
            url = "jdbc:mysql://localhost:3306/chrono_dev?autoreconnect=true"
        }
    }
    ...
}

任何建议如何解决此错误?

4

3 回答 3

1

语法有点不同:

grails dev schema-export // no export

根据这个:

http://grails.org/doc/2.1.0/ref/Command%20Line/schema-export.html

如果您正在进行导入,您可能需要描述数据源:

grails dev schema-export export --datasource=auditing

另外,您要导入的 ddl 的名称是什么?

于 2012-08-25T17:45:23.220 回答
0

几点建议:

  • 尝试在每个环境块中定义整个数据源(而不是让全局共享一个)。我以前在使用这种类型的设置时遇到过麻烦DataSource.groovy
  • 在数据源定义中为 MYSQL 添加方言行。dialect=org.hibernate.dialect.MySQL5InnoDBDialect
  • 如果这些都不起作用,您总是可以分两步进行。schema-export将内容转储到文件中(没有“导出”选项),然后将其输出粘贴到 SQL 编辑器中并运行。
于 2012-09-10T19:35:05.010 回答
0

我不确定为什么它现在有效,但确实有效。我已经切换到 Postgres,也许它与此有关。对不起,打扰你。

于 2012-09-26T08:15:34.353 回答