Existuje několik triků, které by se vám mohly hodit.
Za prvé, MySQL /*! */ notace vám umožňuje přidat kód, který bude MySQL poslouchat, ale ostatní databáze budou ignorovat, například:
create table Users (
id bigint not null auto_increment,
name varchar(40)
) /*! engine=InnoDB */
Není to stříbrná kulka, ale umožní vám popsat některé rozdíly mezi MySQL a syntaxí H2. Je to MySQL-ismus, takže to nepomůže s jinými databázemi, ale protože většina ostatních databází není tak svérázná jako MySQL, pravděpodobně byste to nepotřebovali - migrovali jsme naši databázi z MySQL na PostgreSQL, která však podporovat /*! */ notace, ale PostgreSQL je dostatečně podobný H2, že jsme ho nepotřebovali.
Pokud chcete použít jinou konfiguraci pro dev a prod, pravděpodobně bude nejlepší mít extra konfiguraci pro prod. Důvodem je to, že pravděpodobně spustíte svůj dev server pomocí play run a spusťte svůj prod server pomocí play stage; target/start . target/start může mít -Dconfig.resource parametr. Vytvořte například další konfigurační soubor prod.conf pro produkt, který vypadá takto:
include "application.conf"
# Extra config for prod - this will override the dev values in application.conf
db.default.driver=...
db.default.url=...
...
a vytvořte start_prod skript, který vypadá takto:
#!/bin/sh
# Optional - you might want to do this as part of the build/deploy process instead
#play stage
target/start -Dconfig.resource=prod.conf
Teoreticky byste to mohli udělat obráceně a mít application.conf obsahovat prod conf a vytvořit dev.conf soubor, ale pravděpodobně budete chtít skript pro spuštění prod tak jako tak (pravděpodobně nakonec budete potřebovat další parametry JVM/paměť/GC nebo je přidat do rc.d nebo cokoli jiného).