我的Play應用程序使用postgres。它包含一些特定於postgres的進化,這使得我無法使用內存中的h2數據庫進行測試。例如,下面的進化是在Postgres的罰款,但在H2(甚至MODE=PostgreSQL
)失敗:在Play中,我可以根據數據庫類型應用不同的Evolution嗎?
alter table ac_host rename column base_url to baseurl;
的H2相當於是:
alter table ac_host alter column base_url rename to baseurl;
我想在一些用H2我測試,但嘗試這樣做是因爲h2不兼容的演變而在應用程序初始化時失敗。有沒有辦法解決這個問題通過指定取決於數據庫類型的替代演變?
根據我的經驗,如果您爲單元測試使用不同的內存數據庫,它可能是一個非常好的設置。 Liquibase對此非常有用,因爲它可以定製它發出的針對多個數據庫供應商的SQL。 –