2010-12-21 3 views
4

背景: warblersの実行可能なwarを使って小さなJRuby-On-Railsアプリケーションを配備したいので、.warファイルを落とすだけで誰もがjava -jar app.warで実行できます。JRuby-On-Railsアプリケーションを戦争としてデプロイするときに、sqlite3-databaseをどこに置くべきですか?

アプリケーションはsqlite3を使用してデータを格納し、production-dbファイルは戦争の中のWEB-INF/dbにあります。

アプリケーションが起動されるたびにwinstoneが一時ディレクトリにwarを展開します。アプリケーションが2回目に起動されると、このセッション中に実行されたすべてのアクションは失われます(production-dbは戦争から再度解凍されるためです)。 -ファイル)。

アプリが起動されるたびに同じdbファイルを使用するにはどうすればよいですか?

答えて

4

database.ymlに絶対パスをハードコードすることも、環境変数またはシステムプロパティからwebappの外部のパスを選択するロジックを追加することもできます。たとえば、次のようにして

production: 
    db: <%= java.lang.System.getProperty('db') %> 

打ち上げ:

java -Ddb=/path/to/db -jar app.war 
+0

これは、私は、おかげで再び、ニック:) – Jan

+0

非常に素晴らしいトリックを探していたものです!私のために働いた:) – gouravtiwari21

関連する問題