play framework - SQLite:启用外键

时间:2014-09-09 09:18:20

标签: playframework sqlite playframework-2.0 foreign-keys

我在使用SQLite时遇到问题,SQLite文档说foreign keys are disabled by default, and need to be enabled with each connection

我正在使用SQLite和Ebean,在演变中我添加了这一行:

PRAGMA foreign_keys = ON;

但它不起作用,只有当我从终端或SQLite客户端打开一个连接并执行该行(PRAGMA foreign_keys = ON;)时它才有效,我也在应用程序的开头尝试了这个但是没有运气:

Ebean.getServer("mom").createSqlUpdate("PRAGMA foreign_keys = ON;").execute();

那么,如何启用外键?

1 个答案:

答案 0 :(得分:1)

您不能通过演变来实现这一点,因为PRAGMA与连接相关联,而不是与数据库相关联。

在启动时调用SQL将不会出于类似的原因:它将仅启用PRAGMA来自您正在运行查询的池中的连接。

您需要为正在使用的每个连接执行此操作。

根据the JDBC documentation of Play Framework,您可以通过配置连接池为PRAGMA文件中的每个新连接执行application.conf来实现此目的:

db.default.initSQL="PRAGMA foreign_keys = true"

您可以将连接/服务器名称default替换为mom,或者如何配置JDBC连接。