我有一个带有我的数据库配置的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文件时,它可以正常工作。
答案 0 :(得分:2)
Play不会将资源打包到pattern
/ stage
任务中。在生产中,资产位于启动应用程序而不是文件系统(即" public"文件夹)时加载的jar中。所以你不能这样加载它。
将您的SQLite文件移至dist
目录并更改conf
行以匹配新路径。