私はプロジェクトでスプリングブートを使用します。私はテーブルを作成し、シードデータを入力するためのliquibaseスクリプトを持っています。 repoテストは@DataJpaTestアノテーションを使用して実行され、デフォルトではメモリ内のh2データベースが使用されます。H2エラー、またはPascalCaseからsnake_caseへのテーブルの名前変更
このプロジェクトのデータベースは当初はSQLServerでしたので、liquibaseスクリプトのテーブル名はPascalCaseになりました。フーバー。その後、データベースをPostgreSQLに変更しなければならなかったので、PascalCaseからsnake_caseにテーブル名を変更するための新しいliquibaseスクリプトが追加されました。 FooBarからfoo_barへ
liquibaseスクリプトはPostgreSQLデータベースに対して正常に実行されますが、(H2データベースに対して)repoテストの一部として実行されると、名前変更スクリプトは失敗します。単一の単語でテーブル名の名前を変更しようとすると失敗します。弁護士から機関まで私はすでに試したし、失敗した
Caused by: org.h2.jdbc.JdbcSQLException: Table "INSTITUTION" already exists; SQL statement:
ALTER TABLE PUBLIC.Institution RENAME TO institution [42101-196]
ソリューション::私は以下のエラーを取得する
カスタムメモリ内のH2データベースを指しているのsrc /テスト/リソースで別のapplication.propertiesファイルこれは次のように見える:
spring.datasource.url = JDBC:H2:MEM:試験; DB_CLOSE_ON_EXIT = FALSE; MODE = PostgreSQLの spring.datasource.username = SA spring.datasource.password = SA spring.datasour ce.driverClassName = org.h2.Driver
私はまた、大文字小文字を保持すると思っているliquibaseスクリプトの二重引用符で表名を言及しようとしました。 did not work
助けてください! :(