§H2 数据库
注意:从 Play 2.6.x 开始,您实际上需要自己包含 H2 依赖项。为此,您只需要将以下内容添加到您的 build.sbt 中
libraryDependencies += "com.h2database" % "h2" % "1.4.192"
H2 内存数据库对于开发非常方便,因为您的演变在 Play 重新启动时会从头开始运行。如果您使用的是 Anorm,您可能需要它来密切模拟您计划的生产数据库。要告诉 h2 您想要模拟特定数据库,请在您的 application.conf 文件中的数据库 URL 中添加一个参数,例如
db.default.url="jdbc:h2:mem:play;MODE=MYSQL"
§目标数据库
MySql | MODE=MYSQL |
|
DB2 | MODE=DB2 | |
Derby | MODE=DERBY | |
HSQLDB | MODE=HSQLDB | |
MS SQL | MODE=MSSQLServer | |
Oracle | MODE=Oracle | |
PostgreSQL | MODE=PostgreSQL |
§防止内存数据库重置
默认情况下,H2 会在没有连接到它的情况下删除您的内存数据库。您可能不希望发生这种情况。要防止这种情况,请将 DB_CLOSE_DELAY=-1
添加到 URL 中(使用分号作为分隔符),例如:jdbc:h2:mem:play;MODE=MYSQL;DB_CLOSE_DELAY=-1
注意:Play 的内置 JDBC 模块会自动添加
DB_CLOSE_DELAY=-1
,但是如果您使用的是 play-slick 和演变,则需要手动将;DB_CLOSE_DELAY=-1
添加到您的数据库 URL 中,否则演变将处于无限循环中,因为 Play 应用程序将在演变运行后重新启动,因此应用的演变将直接丢失。
§注意事项
默认情况下,H2 会创建使用大写名称的表。有时您可能不希望这样做,例如在某些兼容模式下使用 H2 和 Play evolutions 时。要防止这种情况,请将 DATABASE_TO_UPPER=FALSE
添加到 URL 中(使用分号作为分隔符),例如:jdbc:h2:mem:play;MODE=PostgreSQL;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=FALSE
§H2 浏览器
您可以在 sbt shell 中输入 h2-browser
来浏览数据库的内容。一个 SQL 浏览器将在您的网页浏览器中运行。
§H2 文档
更多 H2 文档可在 他们的网站上找到。
下一步:管理数据库演变
发现此文档中的错误?此页面的源代码可以在 这里找到。在阅读了 文档指南 后,请随时贡献一个 pull 请求。有疑问或建议要分享?前往 我们的社区论坛 与社区开始对话。