2

Grails バージョン:1.1

Tomcat バージョン: 5.5

問題: アプリケーションは URL データ ソースを使用しません。

他のデータソースを使用しているようですが、セッション間でデータが保持されていることがわかるため、メモリDBにはないようです。

存在しないデータベース名を指定してみましたが、アプリケーションは正常に動作します。つまり、データを永続化して正常にフェッチできるということです。アプリケーションでは、データが永続化されている場所を特定できません!!!

コマンド grails war を使用して war ファイルを生成しました

これは、dataSource構成がどのように見えるかです

 dataSource {

    pooled = true

    driverClassName = "com.mysql.jdbc.Driver"

    username = "user"

    password = "pwd"

 }

 hibernate {

    cache.use_second_level_cache=true

    cache.use_query_cache=true

    cache.provider_class='com.opensymphony.oscache.hibernate.OSCacheProvider'

 }

 environments {

    production {

        dataSource {

            dbCreate = "create" 

            url = "jdbc:mysql://localhost:3307/mydb?autoReconnect=true"

            dialect = org.hibernate.dialect.MySQL5Dialect

        }

    }

 }  
4

2 に答える 2

2

war を生成するときに grails が使用するものであるため、本番データ ソースを設定する必要があります。


development {

        dataSource {

                dbCreate = "create" 

                url = "jdbc:mysql://localhost:3307/mydb?autoReconnect=true"

                dialect = org.hibernate.dialect.MySQL5Dialect
}
        }

production {

        dataSource {

                dbCreate = "create" 

                url = "jdbc:mysql://localhost:3307/mydb?autoReconnect=true"

                dialect = org.hibernate.dialect.MySQL5Dialect
}
        }

于 2009-09-12T17:54:12.653 に答える
0

Grails がデータ ソースを無視していることを示す証拠は何ですか?

Grails を実行する前に MySQL に入り、mydb を作成し、「usr」と「pwd」を持つユーザーを追加し、適切な権限を付与しましたか? Grails はそれを行いません。

データベースが存在すると、Grails がスキーマを作成します。ログインして mydb を使用し、「テーブルを表示」してスキーマを表示できるはずです。

ただし、最初にデータベースを作成する必要があります。

于 2009-09-12T17:41:09.280 に答える