2012-02-14 108 views
0

我还不熟悉Commerce Server及其开发工具。 据我所知,有一个数据库包括,以容纳出售的东西。 可以在有一台测试服务器和多个开发工作站的情况下设置开发基础架构,并且共享数据库吗? 我还有一个单独的服务器,它包含一个CVS repo,并且多个开发人员将手动从CVS服务器上提取,执行工作并签入。 测试服务器上的构建和部署工具将从CVS中提取,并且部署到测试服务器。 我的问题是共享数据库,每个开发工作站是否需要它自己的数据库? 寻找关于如何最好地处理多个开发人员,一台测试服务器和一个源代码控制系统的大纲。Websphere Commerce源代码管理设置

回答

0

我从不尝试共享数据库,但我不认为这是个好主意,因为所有的开发环境都可以覆盖其他开发者更改(在数据库中)。

如果开发者必须修改数据库结构,那可能会伤害每个人。

我建议在每个开发环境上都有一个数据库,不必与测试环境相同。

为了您的构建和部署测试服务器是好的。

0

这取决于团队有多大?在我工作的大部分小型项目中,每个人都有自己的DB,特别是当DB是Derby/Cloudscape时,但是对于使用DB2或Oracle的大型项目,总是建议使用存储在其他某台机器上的共享DB比每个人的本地机器。共享机可能会导致问题,如果一个人删除数据,但这可以得到解决只有一个小的备份等,而另一方面,如果团队中的每个人都有自己的数据库,它将很难确保每个人的数据库同步(即小型更新sql需要在每个人的机器上运行,以使他们的工作站在每次同步来自CVS的日常工作代码后工作)

0

你可以这样做。 IBM确实支持该配置。大多数开发人员使用WCS Developer附带的嵌入式WCS环境。它将运行时和Apache Derby一起作为数据库。

另外我会建议您与IBM产品专家交谈。他们可以告诉您最佳做法,并且您可以在购买软件时访问他。只需打开一个PMR并询问你的问题。

0

为每个开发人员使用本地数据库。

然后使用类似liquibase的东西来管理任何数据库结构更改。 要求所有数据库更改都要编写脚本,并放在源代码库中,然后将liquibase servlet添加到您的Stores项目中。这样,当开发人员检出新东西时,本地数据库将在重新启动服务器时自动更新。

这有一个额外的好处,即您的sql脚本实际上至少经过团队开发者一次测试。

现在,理想情况下,您也会为您的开发人员使用wcbd。但是由于这并没有跟踪哪些脚本已经在你的系统上运行,编写超级防卫sql脚本(检查这个表是否已经有列X扩展到Y字符)或者dataload,你可能会覆盖真正不应该的东西。