У меня есть довольно нормальный проект плей-фреймворка, который реализует ряд услуг для отдыха. «Тест активатора» отлично работает из командной строки. Когда я пытаюсь запустить один из тестов в отладчике в IntelliJ 15, один из моих эволюционных баз данных сценариев не удается:Playframework 2.4 эволюция не работает в отладчике
12:34:29.031 [main] ERROR play.api.db.evolutions.DefaultEvolutionsApi - Table "TOKEN" not found;SQL statement:
alter table "TOKEN" rename to "POS_TOKEN" [42102-187] [ERROR:42102, SQLSTATE:42S02]
Моего h2/2.sql выглядит следующим образом:
# --- !Ups
alter table "TOKEN" rename to "POS_TOKEN";
drop sequence "TOKEN_SEQ" ;
create sequence "POS_TOKEN_SEQ";
# --- !Downs
alter table "POS_TOKEN" rename to "TOKEN";
drop sequence "POS_TOKEN_SEQ" ;
create sequence "TOKEN_SEQ";
Соответствующие определение h2/1.sql is
create table token (
id bigint not null,
access_token varchar(255) not null
constraint pk_token primary key (id))
;
Эта эволюция выходит из строя только при работе в отладчике. При запуске приложения с «запуском активатора» шаг 2 эволюции выполняется без ошибок, и таблица переименовывается правильно. Я проверил это с помощью h2-браузера.
Я использую IntelliJ 15 Ultimate Edition. Конфигурация Debug: Class#methodName, VM-arg is -ea, Working dir = $MODULE_DIR$
.
Мои юнит-тесты, которые взаимодействуют с dabase все простираться InMemoryDbTest:
public abstract class InMemoryDbTest {
protected final String fakeUser = "FakeUser";
public FakeApplication app;
@Before
public void before() {
Map<String, String> inMemoryDatabase = Helpers.inMemoryDatabase("h2");
app = Helpers.fakeApplication(inMemoryDatabase);
Helpers.start(app);
}
@After
public void after() {
Helpers.stop(app);
}
}
Я озадачен. Любая помощь в решении этой проблемы приветствуется.
Это решило мою проблему. Спасибо, Лейф. –