我有一個非常正常的playframework項目,實現了一些休息服務。 '激活測試'從命令行運行良好。當我嘗試運行在15的IntelliJ調試器中的一個測試,我的數據庫進化腳本的一個失敗: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的定義是
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。調試配置是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);
}
}
我難倒。感謝解決這個問題的任何幫助。
這解決了我的問題。謝謝雷夫。 –