Я новичок в flyway и немного борюсь за создание таблиц с использованием flyway в базе данных H2
Я создал таблицы в своей базе данных oracle с использованием сценария flyway.
Теперь я хочу выполнить тест Junit и создать таблицы, используя скрипт Flyway, но не в oracle База данных. Вместо этого я хочу создать его в базе данных H2 (для модульного теста).
Скрипт Flyway, используемый в моем случае, отличается в обоих сценариях имеют немного другую структуру таблицы.
Ниже приведены структура и конфигурация моего проекта
Ниже представлена конфигурация, представленная в src / main / resources папка
V1.0.0.0.001__tables. sql
CREATE TABLE COMMAND_ACTION
(COMMAND_TYPE_CD VARCHAR2(50 BYTE) NOT NULL,
ACTION VARCHAR2(50 BYTE) NOT NULL,
ACTION_ORDER NUMBER(*,0) NOT NULL,
CONSTRAINT COMMAND_ACTION_PK PRIMARY KEY (COMMAND_TYPE_CD, ACTION_ORDER),
CONSTRAINT COMMAND_ACTION_FK FOREIGN KEY (ACTION) REFERENCES ACTION_DEFINITION(ACTION)
);
CREATE TABLE COMMAND_ACTION_CONFIGURATION
( COMMAND_TYPE_CD VARCHAR2(50 BYTE) NOT NULL,
ACTION VARCHAR2(50 BYTE) NOT NULL,
CONFIGURATION VARCHAR2(1024 BYTE) NOT NULL);
application.properties
spring.profiles.active=cca
spring.flyway.table=CCA_SCHEMA_VERSION
spring.flyway.baseline-on-migrate=true
spring.flyway.schemas=CCA
spring.flyway.user=cca
spring.flyway.password=cca
application-cca.properties
spring.datasource.url=jdbc:oracle:thin:@linux:8080:devdb
spring.datasource.jdbc-url=jdbc:oracle:thin:@linux:8080:devdb
spring.datasource.username=cca
spring.datasource.password=cca
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
Ниже представлена конфигурация в папке src / test / resources
V1.0.0.0.001__tables. sql
CREATE TABLE COMMAND_ACTION
(COMMAND_TYPE_CD VARCHAR2(50 BYTE) NOT NULL,
ACTION VARCHAR2(50 BYTE) NOT NULL,
ACTION_ORDER NUMBER(10,0) NOT NULL,
CONSTRAINT COMMAND_ACTION_PK PRIMARY KEY (COMMAND_TYPE_CD, ACTION_ORDER),
CONSTRAINT COMMAND_ACTION_FK FOREIGN KEY (ACTION) REFERENCES ACTION_DEFINITION(ACTION)
);
CREATE TABLE COMMAND_ACTION_CONFIGURATION
( COMMAND_TYPE_CD VARCHAR2(50 BYTE) NOT NULL,
ACTION VARCHAR2(50 BYTE) NOT NULL,
CONFIGURATION VARCHAR2(1024 BYTE) NOT NULL);
test.properties * 104 5 *
spring.profiles.active=test
spring.flyway.table=CCA_SCHEMA_VERSION
spring.flyway.baseline-on-migrate=true
spring.flyway.user=
spring.flyway.password=
application-test.properties
spring.datasource.url=jdbc:h2:mem:DATABASE
spring.datasource.jdbc-url=jdbc:h2:mem:DATABASE
spring.datasource.username=
spring.datasource.password=
spring.database.driverClassName=org.h2.Driver
spring.flyway.locations=classpath:db/migration
spring.jpa.hibernate.ddl-auto=none
# Enabling H2 Console
spring.h2.console.enabled=true
Я хочу, чтобы мой junit работал независимо от моего src / ресурсов, но не мог достичь вместо этого ошибка ниже, когда я запускаю maven install
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_66]
2020-02-27T12:45:22,000 DEBUG CommandService [pool-3-thread-1] Timer is started.
2020-02-27T12:45:22,001 ERROR CommandService [pool-3-thread-1] Error in processing command. Error :{}
org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "COMMAND_ACTION" not found; SQL statement:
select ca.command_type_cd, ca.action, cac.CONFIGURATION from command_action ca
left outer join command_action_configuration cac
on ca.command_type_cd = cac.command_type_cd and ca.action = cac.action
order by ca.command_type_cd, ca.action_order [42102-200]
Либо когда-нибудь я получаю ошибку, связанную с контрольной суммой.