0

我在 SERVERFAULT 上发布了同样的项目,但没有得到回复。所以这里是:

我目前正在完成一个 Rails 应用程序。我正在使用 Warbler 将其打包为“.war”文件并使用 GlassFish 进行部署。我这样做是因为该应用程序将分发给公司以供内部使用。可以说我可以/应该使用另一个框架来开发这种性质的应用程序,但是,我选择了开发的轻松/速度而不是部署麻烦。

也就是说,我的设置在我的开发机器上运行得相当好。但是,我很好奇如何进行环境初始化自动化。换句话说,我需要弄清楚如何确保所有的数据库、文件等都可以正常运行。在部署时配置。到目前为止,我所看到的所有示例都假设您在要部署的系统上运行 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 回答