Playframework 播放框架-SQLite:启用外键
我在将SQLite与play一起使用时遇到了一个问题,SQLite文档说明了这一点 我在Ebean中使用SQLite,在evolution中我添加了这一行: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_
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”