Playframework 2.5:无法在阶段模式下访问 SQLite 数据库文件
Playframework 2.5 : unable to access SQLite db file in stage mode
我的数据库配置有一个 application.conf 文件:db.default.url = "jdbc:sqlite:public/db/mydatabase.db"
。这在开发模式下工作正常。
当我尝试在生产中部署时,在完成 ./activator clean compile stage
和 ./activator start
之后,应用程序尝试在 30 秒内连接到数据库并最终退出并出现异常:
java.sql.SQLException: path to 'public/db/mydatabase.db': '/path/to/app/target/universal/stage/public' does not exist
我试图用特定的 prod.conf 指定绝对路径,包括 application.conf 并覆盖 db.default.url
。我还尝试从命令行参数 (-Ddb.default.url="jdbc:sqlite:public/db/mydatabase.db"
) 开始,输出始终相同。
我该如何解决这个问题?
编辑:prod.conf 配置似乎没有覆盖 application.conf 语句...当我直接更改具有生产特定属性的 application.conf 文件时,它起作用了。
Play 不打包 stage
/dist
任务中的资产。在生产中,资产位于启动应用程序时加载的 jar 中,而不是在文件系统中(即 "public" 文件夹)。所以你不能那样加载它。
将您的 SQLite 文件移动到 conf
目录并更改 db.default.url
行以匹配新路径。
我的数据库配置有一个 application.conf 文件:db.default.url = "jdbc:sqlite:public/db/mydatabase.db"
。这在开发模式下工作正常。
当我尝试在生产中部署时,在完成 ./activator clean compile stage
和 ./activator start
之后,应用程序尝试在 30 秒内连接到数据库并最终退出并出现异常:
java.sql.SQLException: path to 'public/db/mydatabase.db': '/path/to/app/target/universal/stage/public' does not exist
我试图用特定的 prod.conf 指定绝对路径,包括 application.conf 并覆盖 db.default.url
。我还尝试从命令行参数 (-Ddb.default.url="jdbc:sqlite:public/db/mydatabase.db"
) 开始,输出始终相同。
我该如何解决这个问题?
编辑:prod.conf 配置似乎没有覆盖 application.conf 语句...当我直接更改具有生产特定属性的 application.conf 文件时,它起作用了。
Play 不打包 stage
/dist
任务中的资产。在生产中,资产位于启动应用程序时加载的 jar 中,而不是在文件系统中(即 "public" 文件夹)。所以你不能那样加载它。
将您的 SQLite 文件移动到 conf
目录并更改 db.default.url
行以匹配新路径。