Ruby on rails ocra编译rails应用程序的数据库设置

Ruby on rails ocra编译rails应用程序的数据库设置,ruby-on-rails,database-connection,ocra,Ruby On Rails,Database Connection,Ocra,我正在尝试打包一个rails(3.2)应用程序以在windows计算机上运行,我正在使用OCRA将该应用程序“编译”为exe。在我的头不断地撞在桌子上之后,我已经设法让应用程序编译并运行,但我还有一个问题;应用程序的数据库也打包在.exe中,因此当应用程序运行和运行时(可以创建和检索新记录),它只是临时的,当exe停止时,对数据库的任何更改都将丢失 所以我想我需要做的是让数据库在应用程序的外部,这样它就会在exe的外部。但我还没能做到这一点。我尝试过将database.yml中的数据库路径更改为

我正在尝试打包一个rails(3.2)应用程序以在windows计算机上运行,我正在使用OCRA将该应用程序“编译”为exe。在我的头不断地撞在桌子上之后,我已经设法让应用程序编译并运行,但我还有一个问题;应用程序的数据库也打包在.exe中,因此当应用程序运行和运行时(可以创建和检索新记录),它只是临时的,当exe停止时,对数据库的任何更改都将丢失

所以我想我需要做的是让数据库在应用程序的外部,这样它就会在exe的外部。但我还没能做到这一点。我尝试过将database.yml中的数据库路径更改为几个不同的值,但没有任何效果。我看到的连接到外部数据库的示例都显示连接到远程主机,而不是本地文件。
我希望数据库文件与exe文件位于同一文件夹中

编译后的应用程序在生产模式下运行,这是我用来构建exe的ocra命令

ocra myapp\script\rails myapp --add-all-core --gemfile myapp\Gemfile --no-dep-run --gem-full --chdir-first -- server -e production
database.yml基本上与创建应用程序后一样

production:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000
我已尝试将
数据库:
设置为仅
production.sqlite
。/production.sqlite
,然后在运行数据库文件之前将其放置在与编译的exe相同的文件夹中,但没有起作用。

我对设置不同的数据库非常不熟悉,所以我确信我在这里遗漏了一些关键点

我终于在一个关于另一个与ORCA相关的问题中找到了答案,它恰好包含了我需要的database.yml配置

要使数据库位于OCRA编译exe的外部,以便数据库文件与.exe位于同一目录中,请将database.yml中的
database:
参数设置为该值

<%= File.expand_path('../production.sqlite3', ENV["OCRA_EXECUTABLE"]) %>

我编译的应用程序在生产模式下运行,因此这就是我的database.yml部分的外观

production:
  adapter: sqlite3
  database: <%= File.expand_path('../production.sqlite3', ENV["OCRA_EXECUTABLE"]) %>
  pool: 5
  timeout: 5000
生产:
适配器:sqlite3
数据库:
游泳池:5
超时:5000
现在这一切都很好,我可以运行app.exe在数据库中创建一个新条目,然后终止app.exe。当我再次运行app.exe时,对数据的更改仍然存在