将 JRuby-On-Rails 应用程序部署为战争时,将 sqlite3-database 放在哪里?
背景:我想使用 warblers 可执行 war 部署一个小型 JRuby-On-Rails-Application,这样我就可以删除 .war 文件,每个人都可以使用 java -jar app 运行它.war。
应用程序使用sqlite3来存储一些数据,生产数据库文件位于war内的WEB-INF/db。
每次启动应用程序时,winstone 都会将 war 解压到临时目录中,如果第二次启动应用程序,则在此会话期间执行的所有操作都会丢失(因为 Production-db 会再次从 war 文件中解压)。
那么如何在每次启动应用程序时使用相同的数据库文件呢?
Background: I want to deploy a small JRuby-On-Rails-Application using warblers executable war, so I can just drop the .war-file and everyone can run it with java -jar app.war
.
The application uses sqlite3 to store some data, and the production-db-file is located at WEB-INF/db inside the war.
Every time the app is started, winstone unpacks the war to a temp-directory, and all actions performed during this session are lost if the application is started the second time (because the production-db is unpacked again from the war-file).
So how can I use the same db-file every time the app ist started?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以在 database.yml 中硬编码绝对路径,或者添加一些逻辑以从环境变量或系统属性中选择 Web 应用程序外部的路径。例如:
启动方式:
You could either hard-code an absolute path in the database.yml, or add some logic to either pick a path outside of the webapp from an environment variable or a system property. For example:
Launch with: