【问题标题】:How do I specify the path to my SQLite database in Slick?如何在 Slick 中指定我的 SQLite 数据库的路径?
【发布时间】:2017-08-29 23:47:28
【问题描述】:

我正在尝试使用 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 应用程序的主目录中,即根 play-scala-intro 目录或 app/assets 目录?

【问题讨论】:

    标签: scala sqlite jdbc playframework slick


    【解决方案1】:

    我会说将您的数据库存储在 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-13
      • 2018-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-19
      • 2018-10-05
      相关资源
      最近更新 更多