2

シード(初期またはテスト)データをgrailsアプリケーションにロードするための最良の方法は何ですか。私は3つのオプションを検討しています

  1. すべてを*BootStrap.groovyファイルに入れます。ドメインクラスとテストデータが多い場合、これは面倒です。
  2. xmlを介してロードするカスタム機能を記述します。groovyによる優れたxmlサポートではそれほど難しくないかもしれませんが、さまざまなドメインクラスの多くのswitchステートメントがあります。
  3. LiquibaseLoadDataAPIを使用します。csvファイルからかなり簡単にデータをロードできるようです。

選択肢3が最も簡単なようです。しかし、私はLiquibaseに精通していません。このシナリオで良いのか、それとも移行やデータベースの変更などにのみ使用するのか。誰かがより良いソルを提供したり、Liquibaseの例を示したりできるなら、それは大きな助けになるでしょう。

4

5 に答える 5

2

私はFixturesプラグインを使用してテスト/初期データをロードしていますが、それは私のために機能します。

http://www.grails.org/plugin/fixtures

于 2010-04-26T19:28:39.673 に答える
2

もう1つの答えは、grailsrun-scriptを活用することです。これにより、ブートストラップに入れたものを移動して、ファイルシステム上の任意の場所(おそらくコードベースの外)に保持できます。同様に、コンソールプラグインをインストールして、実行中のアプリケーションにコードをロードすることもできます。

データのニーズに応じて、優れたbuild-test-dataプラグインも確認してください。

于 2011-05-10T04:24:53.407 に答える
0

http://www.dbunit.org/およびhttp://www.grails.org/DBUnit+Pluginをご覧ください

于 2010-04-26T11:04:34.647 に答える
0

SeedMeプラグインを調べてください: https ://github.com/bertramdev/seed-me

seed = {
    author(meta:[key:'name'], name: 'David', description: 'Author Bio Here')
}
于 2017-11-28T19:26:12.327 に答える
0

シードデータを生成する1つの方法は、サービスを使用することです。クラスを作成しました。SeederServiceと呼びましょう。このサービスをBootstrap.groovyに挿入して、必要なメソッドを呼び出すことができます。

SeederServiceの利点は、単体テストでも同じサービスを使用できることです。単体テストにサービスクラスを挿入し、シードデータを生成するだけです。

于 2017-12-05T18:28:49.073 に答える