1

コマンド "schema-export" を使用してデータベース スキーマを (再) 作成したいと考えています。DDL 生成は正常に機能しますが、「schema export export」を実行すると、次のエラーが表示されます。これは、構成ファイルに何かが欠けていることを示唆しています。

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」を定義します:

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
  • それでもうまくいかない場合は、いつでも 2 段階のプロセスでこれを行うことができます。物事schema-exportをファイルにダンプし(「エクスポート」オプションなし)、その出力をSQLエディターに貼り付けて実行します。
于 2012-09-10T19:35:05.010 に答える
0

なぜ今それが機能するのかはわかりませんが、機能します。私は Postgres に切り替えました。これと関係があるのか​​もしれません。お邪魔になってすみません。

于 2012-09-26T08:15:34.353 に答える