我正在尝试打包一个 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
我尝试设置database:
为 justproduction.sqlite
然后../production.sqlite
将数据库文件放在与编译的 exe 相同的文件夹中,然后再运行它,但这没有奏效。
我对设置不同的数据库非常不熟悉,所以我确定我在这里遗漏了一些关键点!