如何在Slick中指定SQLite数据库的路径?

时间:2017-04-04 16:36:06

标签: scala sqlite jdbc playframework slick

我正在尝试使用Scala和Slick的Play框架进行数据访问。

我正在玩play-scala-intro示例应用。我正在尝试设置自己的数据库,而不是使用内存H2数据库中的捆绑。

我无法弄清楚如何指定数据库文件的路径。

如果application.conf中的代码为:

  slick.dbs.default.db.url="jdbc:sqlite:/test.db"
  slick.dbs.default.db.driver="org.sqlite.JDBC"

我的test.db文件应放在哪里?

这是否意味着test.db文件应该位于Web应用程序的主目录中,这意味着root play-scala-intro目录或app / assets目录?

1 个答案:

答案 0 :(得分:0)

我会说你的数据库存储在Java资源中(而assets最终会这样)对我来说听起来不是一个好主意。如果没有出现任何问题,我会感到惊讶。写信给DB。

最好将它放在与JAR相同的目录中,甚至更好地设置一些默认值并让它们被覆盖:

database.location="test.db"
database.location=${?DBLOCATION}

slick.dbs.default.db.url="jdbc:sqlite:"${database.location}

这应该假设您的数据库名称为test.db并放在工作目录中(请参阅:https://stackoverflow.com/a/21061029/1305121)。它可以使用环境变量DBLOCATION覆盖,如:

export DBLOCATION="/tmp/my/database.db"
# run Play application