我创建了一个简单的'hello'类型的JRuby应用程序,并使用Warbler进行WAR,然后部署到JBoss.但是,使用该应用程序时出现以下错误:
ActiveRecord::JDBCError (The driver encountered an unknown error: 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' does not exist):
当我深入研究demo.war文件时,WEB-INF目录中缺少db目录.db目录虽然存在于测试,开发和生产数据库文件中,但仍存在于app目录中.
有任何想法吗?
通常,db目录仅包含迁移.如果您正在使用sqlite3,它包含数据库文件,但是因为当您在生产中部署war时,它会在服务器内部的某处解压缩,并且可能在重新部署时被删除,您的数据库文件将随着重新部署而消失.如果文件是只读的,并且您不担心这个问题,那么您可以通过运行warble config和编辑config/warble.rb并添加db到config.dirs数组来轻松添加db目录.