Có một số thủ thuật bạn có thể thấy hữu ích.
Đầu tiên, /*! */
ký hiệu cho phép bạn thêm mã mà MySQL sẽ tuân theo, nhưng các DB khác sẽ bỏ qua, ví dụ:
create table Users (
id bigint not null auto_increment,
name varchar(40)
) /*! engine=InnoDB */
Nó không phải là một viên đạn màu bạc, nhưng nó sẽ cho phép bạn nghiên cứu một số điểm khác biệt giữa cú pháp của MySQL và H2. Đó là MySQL-ism, vì vậy nó sẽ không giúp ích gì cho các cơ sở dữ liệu khác, nhưng vì hầu hết các cơ sở dữ liệu khác không kỳ lạ như MySQL, bạn có thể sẽ không cần nó - chúng tôi đã di chuyển cơ sở dữ liệu của mình từ MySQL sang PostgreSQL, điều này không hỗ trợ /*! */
ký hiệu, nhưng PostgreSQL đủ tương tự với H2 mà chúng tôi không cần đến nó.
Nếu bạn muốn sử dụng một cấu hình khác cho nhà phát triển và sản phẩm, có lẽ bạn nên có thêm cấu hình cho sản phẩm. Lý do cho điều này là có thể bạn sẽ khởi động máy chủ nhà phát triển của mình với play run
và khởi động máy chủ sản phẩm của bạn với giai đoạn chơi play stage; target/start
. target/start
có thể lấy một -Dconfig.resource
tham số. Ví dụ:tạo một tệp cấu hình bổ sung prod.conf
cho sản phẩm trông giống như:
include "application.conf"
# Extra config for prod - this will override the dev values in application.conf
db.default.driver=...
db.default.url=...
...
và tạo start_prod
tập lệnh trông giống như:
#!/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
Về lý thuyết, bạn có thể làm theo cách khác và có application.conf
chứa sản phẩm và tạo một dev.conf
nhưng có thể bạn vẫn muốn một tập lệnh bắt đầu sản phẩm (có thể bạn sẽ cần thêm các tham số JVM / memory / GC hoặc thêm nó vào rc.d hoặc bất cứ thứ gì).