Rails (3.2) アプリをパッケージ化して Windows マシンで実行しようとしていますが、OCRA を使用してアプリを exe に「コンパイル」しています。何度も机に頭をぶつけた後、なんとかアプリをコンパイルして実行することができましたが、まだ 1 つの問題が残っています。アプリのデータベースも .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:
に設定してから、実行する前にコンパイル済みのexeと同じフォルダーにデータベースファイルを配置しようとしましたがproduction.sqlite
、うまくいきませんでした。
私はさまざまなデータベースのセットアップに慣れていないので、ここでいくつかの重要なポイントが欠けていると確信しています!../production.sqlite