2017-04-04 170 views
0

我正在尝试使用Scala和Slick的Play框架进行数据访问。如何在Slick中指定我的SQLite数据库的路径?

我在玩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应用程序的主目录中,即根目录play-scala-intro目录或应用程序/资产目录?

回答

0

我想说你的数据库存储在Java资源(这就是assets将最终),这听起来对我来说不是一个好主意。例如,如果没有出错,我会感到惊讶。写入数据库。

它会更好,有它在同一个目录中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