5

背景:我想使用warbles可执行war部署一个小型JRuby-On-Rails-Application,所以我可以删除.war文件,每个人都可以使用.war运行它java -jar app.war

应用程序使用sqlite3来存储一些数据,production-db-file位于war里面的WEB-INF/db。

每次启动应用程序时,winstone 都会将战争解包到临时目录,如果应用程序第二次启动,则在此会话期间执行的所有操作都将丢失(因为生产数据库再次从战争文件中解压缩)。

那么每次启动应用程序时如何使用相同的数据库文件呢?

4

1 回答 1

6

您可以在 database.yml 中硬编码一个绝对路径,或者添加一些逻辑以从环境变量或系统属性中选择 webapp 之外的路径。例如:

production:
  db: <%= java.lang.System.getProperty('db') %>

启动:

java -Ddb=/path/to/db -jar app.war
于 2010-12-21T16:36:11.620 回答