Play框架的H2数据库演化是否与SQLite/MySQL兼容?

3

到目前为止,我一直使用Play框架默认的SQL生成器与H2内存数据库。是否有其他数据库与这些SQL脚本完全兼容呢?

因为我仍处于开发阶段,所以我喜欢自动生成SQL,但我也想和它配合使用一个持久化数据库。那么我的选择有哪些呢?

我曾经简单尝试过SQLite,但存在着AUTOINCREMENT、约束等不兼容的问题。

1个回答

2
有两个好的选择,选择权在你手中:
  1. 开发时最好选择与生产环境中使用的相同的数据库引擎,MySQL或Postgres是相当典型的选择,因为它们在许多环境中都可用且是开源的。Play会为这两种数据库生成正确的DDL。您也可以...
  2. 使用存储在文件中的H2而不是内存,并通过TCP进行访问,这样它将是持久的,并且您仍然可以使用H2控制台访问数据库。

在这种情况下,示例连接URL是:(其中是您的主目录,因此它将在那里保存MainDB.h2.db文件

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

您需要下载 H2 包以适合您的平台,并按文档中所述在服务器模式下运行它。您可以在bin目录中找到scripts/batch files,或者您也可以使用命令行完成此操作。
它还包括Java包装器,因此您可以在Windows中将H2服务器作为服务运行,以确保它始终在启动时启动。
最后,在成功开发阶段之后,您可以将DB文件复制到目标机器上,并在生产中使用它,如果您从TCP切换到嵌入式模式,您将获得著名的H2性能提升,同时也避免了运行服务器的需要。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接