背景:我想使用warblers 可执行war 部署一个小型JRuby-On-Rails 应用程序,所以我可以删除.war 文件,每个人都可以使用java -jar app.war
运行它。 .
应用程序使用sqlite3存储一些数据,production-db-file位于war内的WEB-INF/db。
每次启动应用程序时,winstone 都会将 war 解压到一个临时目录,如果应用程序第二次启动,则在此 session 期间执行的所有操作都将丢失(因为生产数据库再次从 war 文件中解压)。
那么如何在每次应用程序启动时使用相同的 db 文件呢?
最佳答案
您可以在 database.yml 中硬编码一个绝对路径,或者添加一些逻辑来从环境变量或系统属性中选择 webapp 之外的路径。例如:
production:
db: <%= java.lang.System.getProperty('db') %>
启动:
java -Ddb=/path/to/db -jar app.war
关于sqlite - 将 JRuby-On-Rails 应用程序部署为 war 时,将 sqlite3 数据库放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4498100/