在部署JRuby-On-Rails应用程序作为战争时将sqlite3数据库放在何处?

时间:2010-12-21 10:07:17

标签: sqlite jruby jrubyonrails warbler winstone

后台:我想使用warblers可执行战争来部署一个小的JRuby-On-Rails-Application,所以我可以删除.war文件,每个人都可以使用{{1}运行它}。

应用程序使用sqlite3存储一些数据,而生产数据库文件位于战争中的WEB-INF / db。

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

那么每次启动应用程序时如何使用相同的db-file?

1 个答案:

答案 0 :(得分:4)

您可以在database.yml中对绝对路径进行硬编码,也可以添加一些逻辑来从环境变量或系统属性中选择Web应用程序之外的路径。例如:

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

启动:

java -Ddb=/path/to/db -jar app.war