2017-04-04 156 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