0

開発環境がメモリ内 H2 データベースを使用する Grails プロジェクトがあります。

dataSource {
    dbCreate = "create"
    url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
}

(run-app を使用して) アプリを実行し、データベースにいくつかのものを入れることができます (例: scaffolded コントローラーを使用)。ここで、ソース ファイルに変更を加えると、Grails が変更を検出し、クラスを再コンパイルして、データベースをクリアします。

JDBC URL のfile代わりに使用しようとしましたが、動作は同じです。memこれを回避する唯一の方法はの代わりにに設定dbCreateすることですが、アプリケーションの にフィクスチャをロードするため、これも私が望むものではありません。そのため、アプリケーションを再起動すると、フィクスチャの複数のコピーが作成されます。"update""create"BootStrap

問題は、クラスを再コンパイルするときに Grails がデータベースを再作成しないようにするにはどうすればよいか、または、データベースをクリアするたびにフィクスチャをリロードしないようにするにはどうすればよいかということです。

4

1 に答える 1

2

ここにも同様の「問題」があります

ドメインクラスに変更を加えるたびに、Grails はデータベースをリセットします。

通常、ドメイン クラスはあまり頻繁に変更されるべきではないため、これは大きな問題ではありません。MVC パターンに従って、意図したとおりにコントローラーとサービスにロジックを配置するだけです。次に、保留中のすべてのドメイン クラスの変更を一度に実行してみてください。

于 2013-01-11T20:35:16.880 に答える