Таблица не найдена в базе данных H2 с приложением Springboot с тестовым файлом yml - PullRequest
0 голосов
/ 04 мая 2020

Я использую postgrest, в скрипте sql я создал таблицу с синтаксисом schema.tablename и использовал команду alter только с синтаксисом "alter table tableName". Я использую пролетный путь. Теперь я хочу использовать H2 для модульного тестирования. Но H2 не находит таблицу, когда выполняет команду alter table. Я полагаю, что это связано с тем, что имя схемы не используется в синтаксисе изменения таблицы. Может кто-нибудь предложить решение .?

Yml файл:

  h2:
    console:
      enabled: true
      path: /h2
  datasource:
    url: jdbc:h2:mem:testdb1;DB_CLOSE_ON_EXIT=FALSE;MODE=PostgreSQL;INIT=CREATE SCHEMA IF NOT EXISTS test
    driver-class-name: org.h2.Driver
    username: sa
    password: password
  jpa:
    generate-ddl: true
    hibernate:
      ddl-auto: create
    properties:
      hibernate:
        dialect: org.hibernate.dialect.H2Dialect
        show_sql: true
        format_sql: true
        use_sql_comments: true


SQL script: CREATE TABLE test.record (
  id bigserial PRIMARY KEY,
  name character varying(255) NOT NULL,
  status character varying(255) NOT NULL,
  id bigint references test.details(id)
);

ALTER table record ADD column t_id character varying(50);

StackTrace:
Migration of schema "PUBLIC" to version 4 - AlterRecord Table failed! Please restore backups and roll back database and code! [main] []

[org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration$FlywayConfiguration.class]: Invocation of init method failed; nested exception is org.flywaydb.core.internal.command.DbMigrate$FlywayMigrateException: 
Migration V4__AlterRecord_Table.sql failed
-----------------------------------------------
SQL State  : 42S02
Error Code : 42102
Message    : Table "record" not found; SQL statement:
ALTER table record ADD column t_id character varying(50) [42102-197]
Location   : db/migration/V4__AlterRecord_Table.sql (D:\Test\testProject\impl\target\classes\db\migration\V4__AlterRecord_Table.sql)
Line       : 16
Statement  : ALTER table record ADD column t_id character varying(50)
 [main] []

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...