2015-12-02 57 views
1

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

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

从我对博客和Q &的快速浏览中,我只找到了关于提前创建SQLDB的文章,将Liberty运行时打包为.zip文件,然后使用cf push到Bluemix。由于提前创建了SQLDB,所以数据库连接将起作用。

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

+0

您能更好地指定'将SQLDB创建作为一个实体打包到Liberty服务器'的含义是什么?你想打包服务内包推进?如果是这样,这是不可能的,软件包包含所有配置文件,源/编译文件,库,但根本没有服务。这些服务由Bluemix服务提供。更多,SQLDB是DB2上的轻型版本 –

+0

好的,谢谢你的评论。我会更好地提炼我的问题。我现在创建了一个具有“cf”命令的bat/shell脚本,这些命令1)连接到bluemix 2)登录到bluemix 3)创建sqldb 4)在刚刚创建的sqldb上运行DDL(如何操作)5)cf推包装Liberty服务器(zip文件)6)cf绑定服务器到sqldb实例6)cf restage。问题在于步骤4),我如何在刚创建的sqldb上运行DDL。 –

+0

@OWOW似乎你的SQLDB和Liberty部署过程应该是分开的。每次你推送Liberty时,你是否总是需要重新创建SQLDB? –

回答

1

你不能这样做。

如果你想创建一个脚本来一次完成所有的操作,一个想法是创建一个简单的工作(例如在java中),你可以在脚本中启动它。

应该执行这些步骤的工作:

  1. 连接到SQLDB - bluemix使用服务VCAP_SERVICES(此 步骤中,您可以看到文档 https://www.ng.bluemix.net/docs/#services/SQLDB/index.html#SQLDB
  2. 运行DDL(创建表,...)在你的小任务
  3. 紧密结合
1

另一种选择是打包数据库迁移助手(SOM就像应用程序中的Flyway一样。然后,您可以在应用程序启动时使用Java调用它(我们对此模式的@singleton @startup EJB有很好的运气)。迁移将在需要时运行,否则请保留数据库。这种模式的另一个优点是您可以使用迁移来更新现有表格的表格(顾名思义)。

相关问题