2010-02-23 115 views
0

我在SERVERFAULT上發佈了同樣的東西,但沒有回覆。所以在這裏:(Rails,Warbler)在Glassfish中部署和初始化Rails應用程序...?

我目前正在完成一個Rails應用程序的過程。我使用Warbler將其打包爲「.war」文件,並使用GlassFish進行部署。我這樣做是因爲應用程序將分發給公司以供內部使用。可以說我可以/應該使用另一個框架來開發這種性質的應用程序,但是,我選擇了輕鬆/快速的開發而非部署麻煩。

這就是說,我的設置在我的開發機器上工作得非常好。不過,我很好奇如何進行自動化環境初始化。換句話說,我需要弄清楚如何確保所有數據庫,文件等。在部署時進行配置。 到目前爲止,我所見過的所有示例都假設您正在要部署的系統上運行IDE,並且您需要在部署之前手動運行您的rake任務。不過,我只需要給最終用戶提供「.war」,並且能夠在應用程序部署/啓動時運行所有的rake任務。

有人可以指出我對這個方向正確嗎? FWIW在Glassfish手冊中沒有任何關於環境初始化的內容 - 然後再次,我不認爲我應該期望它們覆蓋部署的每一個方面。

最好。

回答

0

根據您的數據庫要求,您可以在Glassfish環境中嵌入Derby。您可以輕鬆創建空白/默認數據庫,然後將該乾淨版本放入每個必須設置的Glassfish環境中。

我不知道還有什麼需要配置和初始化,但我會說如果可以的話,可以使用一些rake任務進行編寫。嵌入Derby負責數據庫的啓動和初始化。請記住,戰爭文件只是一個zip文件,因此通過腳本添加配置文件應該不那麼困難。您可以使用rails初始化程序(/ config/initializers /)來加載配置的yml文件,或者在應用程序啓動時需要執行的任何操作。

你不能讓初始化器在數據庫中創建模式,但你可以讓他們檢查默認的種子數據,如果它不存在,就把它放入。

您應該能夠訪問Glassfish和JVM可以訪問的文件系統的任何部分。我對Glassfish並不瞭解,但是我在Tomcat上使用jruby rails應用程序遇到的唯一問題與相對路徑有關,即相對於啓動腳本的調用位置,而不是始終與安裝根目錄相關。這可能可以通過在Tomcat中正確的啓動腳本或設置適當的入門文件夾來解決,我只是沒有必要深入瞭解這一點。

+0

基本上我需要設置一些目錄和數據庫,就是這樣。我寧願不處理另一個安裝(因爲這將分發,我將負責支持另一個項目),所以我想避免德比。是否有可能讓初始化程序負責設置數據庫,而不會在應用程序啓動時抱怨?出於好奇,由於使用Glassfish,目錄編寫和文件創建被禁止... – 2010-02-24 15:30:44

+0

...我問,因爲我有一個授權計劃,我需要將文件複製到與應用程序相同的目錄。如果可能的話,我想使用Glassfish界面來複制文件,但是如果我不能,那麼我會在應用程序中添加一個網頁。無論哪種方式,我需要知道Glassfish將不會以我的方式。這有任何意義嗎? – 2010-02-24 15:31:43

+0

我增強我的回答有點根據您的意見 – danivovich 2010-02-24 16:02:29