我创建了一个简单的“hello”类型的 JRuby 应用程序,并使用 Warbler 进行 WAR,然后部署到 JBoss。但是,我在使用该应用程序时遇到以下错误:
ActiveRecord::JDBCError(驱动遇到未知错误:java.sql.SQLException: path to '/opt/jboss/server/ruby/tmp/deploy/tmp8791905909469840942demo-exp.war/WEB-INF/db/production.sqlite3': '/opt/jboss/server/ruby/tmp/deploy/tmp8791905909469840942demo-exp.war/WEB-INF/db' 不存在):
果然,当我深入研究 demo.war 文件时,WEB-INF 目录中缺少 db 目录。 db 目录与测试、开发和生产数据库文件一起存在于 app 目录中。
有什么想法吗?
最佳答案
通常 db 目录只包含迁移。如果您使用的是 sqlite3,它包含数据库文件,但是由于当您在生产环境中部署 war 时,它会在服务器内部某处解压并可能在重新部署时被删除,您的数据库文件将随着重新部署而消失。如果该文件是只读的并且您不担心这种考虑,那么您可以通过运行 warble config
并编辑 config/warble.rb
轻松添加 db 目录,然后将 db
添加到 config.dirs
数组。
关于jruby - 为什么在使用 Warbler 时 JRuby WAR 中没有包含 db 目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7280163/