私は、特定のスキーマに格納されたデータレイヤー内にいくつかのエンティティを持っています。例:スプリングブート。 @DataJpaTest H2組み込みデータベースの作成スキーマ
@Entity
@Table(name = "FOO", schema = "DUMMY")
public class Foo {}
自分のデータレイヤの統合テスト用にH2組み込みデータベースをセットアップしようとしています。 H2組み込みデータベースが自動的に設定されるように私のテストには@DataJpaTest
アノテーションを使用しています。ただし、スキーマDUMMY
はDBの初期化時に作成されないため、テーブルの作成は失敗します。
テストケースでテーブルを作成する前にスキーマを作成する方法に関するアイデアはありますか?
私は@Sqlを使用しようとしましたが(statements = "CREATE SCHEMA IF NOT DISMY")、成功しませんでした。
また、私はファイルにspring.datasource.url = jdbc:h2:mem:test;INIT=CREATE SCHEMA IF NOT EXISTS DUMMY
をTestPropertySource("classpath:test.properties")
と一緒に設定しようとしましたが、これもうまくいきませんでした。
返信ありがとうございます。できます!ところで、依存関係の範囲についての良いキャッチ。 – StasKolodyuk
また、私はこの問題のための別の解決策を見つけました。ちょうどここに配置するのを忘れました。 – StasKolodyuk
'src/test/resources'の下に' schema.sql'を置くことで、テストのためだけにそれを適用することができました – StasKolodyuk