3

到目前为止,我一直在使用 play framework 的默认 SQL 生成与内存 db 中的 H2。是否有任何其他数据库与这些 SQL 脚本完全兼容?我喜欢自动生成 SQL,因为我仍处于开发阶段,但我想与它一起使用持久数据库。我有哪些选择?

我简单地尝试过使用 sqlite,但是有一些不兼容的地方,比如 AUTOINCREMENT、约束等。

4

1 回答 1

2

有两个不错的选择,选择属于您:

  1. 对于开发,最好选择与您在生产中使用的数据库引擎相同的数据库引擎,MySQL 或 Postgres 是非常典型的选择,因为它们在许多环境中都可用并且是开源的。Play 将为他们两个生成正确的 DDL。你也可以...
  2. 使用存储在文件中而不是内存中的 H2 并使用 TCP 访问它作为示例,在这种情况下它将是持久的,并且您将保持使用 H2 控制台访问 DB 的可能性。

在这种情况下,示例连接 URL 是:(您的主目录在哪里~,所以它会将MainDB.h2.db文件保存在那里

db.default.url="jdbc:h2:tcp://localhost/~/MainDB"

您需要为您的平台下载 H2 包并按照文档中的说明server mode运行它。您会在目录中找到/ ,或者您可以使用命令行来完成。scriptsbatch filesbin

它还包含 java 包装器,因此您可以在 Windows 中将 H2 服务器作为服务运行,以确保它始终在启动时启动。

最后,在成功开发阶段之后,您只需将 DB 文件复制到目标机器并在生产中使用它,如果您从模式切换TCPEmbedded模式,您将获得著名的 H2 性能提升,也将避免运行服务器的需要。

于 2013-03-03T16:57:05.317 回答