Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Playframework 播放框架-SQLite:启用外键_Playframework_Sqlite_Playframework 2.0_Foreign Keys - Fatal编程技术网

Playframework 播放框架-SQLite:启用外键

Playframework 播放框架-SQLite:启用外键,playframework,sqlite,playframework-2.0,foreign-keys,Playframework,Sqlite,Playframework 2.0,Foreign Keys,我在将SQLite与play一起使用时遇到了一个问题,SQLite文档说明了这一点 我在Ebean中使用SQLite,在evolution中我添加了这一行: PRAGMA foreign_keys = ON; 但它不起作用,它只在我从终端或SQLite客户端打开连接并执行该行(PRAGMA foreign\u keys=ON;)时起作用,我在应用程序开始时也尝试过这一点,但没有成功: Ebean.getServer("mom").createSqlUpdate("PRAGMA foreign_

我在将SQLite与play一起使用时遇到了一个问题,SQLite文档说明了这一点

我在Ebean中使用SQLite,在evolution中我添加了这一行:

PRAGMA foreign_keys = ON;
但它不起作用,它只在我从终端或SQLite客户端打开连接并执行该行(
PRAGMA foreign\u keys=ON;
)时起作用,我在应用程序开始时也尝试过这一点,但没有成功:

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

那么,如何启用外键呢?

您不能通过演化来实现这一点,因为
PRAGMA
绑定到一个连接,而不是数据库

由于类似的原因,在启动时调用SQL将不起作用:它将仅为恰好在其上运行查询的池中的连接启用
PRAGMA

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

根据,可以通过将连接池配置为对
application.conf
文件中的每个新连接执行
PRAGMA
来实现这一点:

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

您可以用
mom
或您配置JDBC连接的方式替换连接/服务器名称
default

Hi,对我来说,这不起作用。你能告诉我我怎么了吗?我的app.conf是db{sqlite{slick.driver=“scala.slick.driver.SQLiteDriver$”driver=“org.sqlite.JDBC”url=“JDBC:sqlite:./test.db”connectionPool=disabled initSQL=“PRAGMA foreign_keys=ON”}db.sqlite.initSQL=“PRAGMA foreign_keys=true”