Я хочу включить проверку внешнего ключа в SQLite через Slick. Я использую Slick 3.3.0. Как мне это сделать?
В настоящее время я подключаюсь к SQLite через DatabaseConfig[SQLiteProfile]
, выполняя
DatabaseConfig.forConfig(path = configKey, classLoader = getClass.getClassLoader)
Мой конфиг выглядит так:
{
"dataSourceClass": "slick.jdbc.DatabaseUrlDataSource",
"db": {
"driver": "org.sqlite.JDBC",
"properties": {
"foreign_keys": true
},
"url": "jdbc:sqlite:/path/to/mydb.sqlite?foreign_keys=on"
},
"profile": "slick.jdbc.SQLiteProfile$"
}
Я попытался добавить ?foreign_keys=ON
в конец моего URL JDBC. Я также пытался переместить объект properties
из объекта db
в корневой уровень.
Если я взаимодействую с базой данных напрямую через JDBC, я смогу заставить ее работать:
package test
import java.sql.DriverManager
object Main extends App {
val connection = DriverManager.getConnection(
"jdbc:sqlite:/path/to/mydb.sqlite?foreign_keys=on")
val statement = connection.createStatement()
// this line throws, because table_with_fk is a table
// with foreign keys into a different table
statement.executeUpdate(
"insert into table_with_fk values (0, 0, 0, 0, 0, 0, 0, 0)")
}