0

これとまったく同じアイテムをSERVERFAULTに投稿しましたが、返信がありませんでした. だからここに行きます:

私は現在、Rails アプリケーションを仕上げているところです。Warbler を使用して「.war」ファイルとしてパッケージ化し、GlassFish を使用して展開しています。これは、社内で使用するためにアプリケーションを企業に配布するためです。おそらく、この性質のアプリケーションを開発するために別のフレームワークを使用できた/すべきだったのですが、展開の手間よりも開発の容易さ/速度を選択しました。

そうは言っても、私の開発マシンではセットアップがかなりうまく機能しています。ただし、環境の初期化を自動化する方法については興味があります。言い換えれば、すべての DB、ファイルなどを確実にする方法を理解する必要があります。展開時に構成されます。これまで見てきた例はすべて、デプロイ先のシステムで IDE を実行していて、デプロイ前に rake タスクを手動で実行していることを前提としています。ただし、エンドユーザーに「.war」を与えるだけで、アプリケーションの展開/起動時にすべての rake タスクを実行できるようにする必要があります。

誰かがこれに関して正しい方向に私を向けることができますか? FWIW Glassfish のマニュアルには、環境の初期化などについては何も記載されていません。繰り返しになりますが、展開のすべての側面をカバーすることを期待すべきではないと思います。

一番。

4

1 に答える 1

0

データベース要件に応じて、Glassfish 環境内にDerbyを組み込むことができます。空の/デフォルトのデータベースを簡単に作成し、セットアップする必要がある各 Glassfish 環境にクリーンなバージョンを配置できます。

他に何を構成して初期化する必要があるのか​​ わかりませんが、可能であれば、いくつかのrakeタスクを使用してスクリプトを作成することをお勧めします. 組み込み Derby は、データベースの始動と初期化を処理します。war ファイルは単なる zip ファイルであるため、スクリプトを介して構成ファイルを追加することはそれほど難しくないはずです。Rails 初期化子 (/config/initializers/) を使用して、構成用の yml ファイルをロードしたり、アプリの起動時に必要なことを行うことができます。

初期化子にデータベースにスキーマを作成させることはできませんが、デフォルトのシード データをチェックして、そこにない場合はそれを入れることができます。

Glassfish と JVM がアクセスできるファイル システムの任意の部分にアクセスできる必要があります。私は Glassfish についてあまり知りませんが、Tomcat 上の jruby rails アプリで発生した唯一の問題は、スタートアップ スクリプトが呼び出された場所を基準とした相対パスに関連するものであり、必ずしもインストール ルートを基準としているとは限りません。これはおそらく、Tomcat で適切な起動スクリプトを設定するか、適切な開始フォルダーを設定することで解決できる可能性があります。

于 2010-02-24T02:00:52.097 に答える