Ada beberapa trik yang mungkin berguna bagi Anda.
Pertama, /*! */
notasi memungkinkan Anda untuk menambahkan kode yang akan dipatuhi MySQL, tetapi DB lain akan mengabaikannya, misalnya:
create table Users (
id bigint not null auto_increment,
name varchar(40)
) /*! engine=InnoDB */
Ini bukan peluru perak, tetapi ini akan memungkinkan Anda membahas beberapa perbedaan antara sintaks MySQL dan H2. Ini adalah MySQL-isme, jadi itu tidak akan membantu dengan database lain, tetapi karena kebanyakan database lain tidak seunik MySQL, Anda mungkin tidak membutuhkannya - kami memigrasikan database kami dari MySQL ke PostgreSQL, yang tidak mendukung /*! */
notasi, tetapi PostgreSQL cukup mirip dengan H2 sehingga kami tidak membutuhkannya.
Jika Anda ingin menggunakan konfigurasi yang berbeda untuk dev dan prod, sebaiknya Anda memiliki konfigurasi tambahan untuk prod. Alasannya adalah Anda mungkin akan memulai server dev dengan play run
, dan mulai server prod Anda dengan play stage; target/start
. target/start
dapat mengambil -Dconfig.resource
parameter. Misalnya, buat file konfigurasi tambahan prod.conf
untuk prod yang terlihat seperti:
include "application.conf"
# Extra config for prod - this will override the dev values in application.conf
db.default.driver=...
db.default.url=...
...
dan buat start_prod
skrip yang terlihat seperti:
#!/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
Secara teori, Anda bisa melakukannya sebaliknya, dan memiliki application.conf
berisi prod conf, dan buat dev.conf
file, tetapi Anda mungkin tetap menginginkan skrip untuk memulai prod (Anda mungkin akan membutuhkan parameter JVM/memori/GC tambahan, atau menambahkannya ke rc.d, atau apa pun).