1

我创建了一个“企业模板”Liberty 服务器,其中包含一个需要几个 SQLDB 连接的 EAR 文件应用程序。这是有效的,我可以将此服务器推送到 Bluemix 环境。

我的问题是如何打包整个内容并将其发布到 Bluemix 中(即,他们将在 Liberty 上运行具有相同 SQLDB 表设置的相同应用程序的一个实例)。

在我快速浏览博客和问答中,我只找到了有关提前创建 SQLDB、将 Liberty 运行时打包为 .zip 文件,然后使用 cf push 到 Bluemix 的文章。因为 SQLDB 是提前创建的,所以 DB 连接可以正常工作。

那么有没有一种方法可以将 Liberty 服务器与 SQLDB 创建作为一个实体打包到一个“buildpack”中?如果是这样,有人可以指导我所涉及的步骤吗?(或文章/博客,任何事情都会有所帮助)

4

2 回答 2

1

你不能这样做。

如果您想创建一个一次性执行所有操作的脚本,一个想法是创建一个可以在脚本中启动的简单作业(例如在 java 中)。

该作业应执行以下步骤:

  1. 使用 VCAP_SERVICES 连接到 sqldb - bluemix 服务(对于此步骤,您可以查看文档 https://www.ng.bluemix.net/docs/#services/SQLDB/index.html#SQLDB
  2. 在你的小工作中运行 DDL(创建表,...)
  3. 紧密连接
于 2015-12-04T11:08:08.273 回答
1

另一种选择是打包一个数据库迁移助手(类似于应用程序中的Flyway。然后您可以在应用程序启动时使用 Java 调用它(我们已经为这种模式使用了 @singleton @startup EJB)。迁移将运行需要时,但不要单独使用数据库。这种模式的另一个优点是您可以使用迁移来更新现有表的表(顾名思义)。

于 2015-12-04T18:05:08.837 回答