我正在建立一个集中存储库,用于存储企业架构师(来自sparx系统)生成的工件,供6-8人团队使用。最初想到托管一个PostgreSQL数据库来集中存储工件,另一个选择是使用SVN。查看EA文档,没有清楚地了解所考虑的选项的优缺点。与使用SVN相比,使用DBMS时会产生以下开销。
对于SVN,从EA文档中可以看出,部署模型仅适用于最大规模为10的团队,并且文件可能会被破坏。除了这些是使用SVN托管存储库的任何瓶颈?听取在多用户环境中与Enterprise架构师合作过的人的建议会很棒。
答案 0 :(得分:8)
“最多10人”警告是指团队共享单个.EAP文件的情况。如果所有用户都有自己的.EAP文件,或者您设置了DBMS存储库,则不适用。
在DBMS设置中,我建议使用EA的基线进行版本管理,而不是外部版本控制存储库。这个概念是相似的:单个包是基线的,但它们不是在SVN / CVS / etc中外部存储版本,而是存储在数据库内部。
这为您提供了一个较少的存储库来管理,但是还应该注意EA在将DBMS与外部版本控制相结合时会出现问题,这可能很烦人甚至(最坏的情况)导致信息丢失。外部版本控制旨在与.EAP文件一起使用。
基线比外部版本控制有一个很大的优势:您可以在EA内部直观地比较不同版本,并查看在各个图表中添加,删除,更改和移动的内容。最大的缺点:在版本控制的软件包中,基线软件包不会在项目浏览器中用特殊图标表示。
具有单独的.EAP文件和外部版本控制的部署模型使人们可以选择将不同的包以及这些包的不同版本导入其EA项目中。使用DBMS模型只有一个EA项目,因此每个人都会看到相同软件包的相同版本。
是的,使用DBMS,您需要设置用户并实施备份计划。但是您也需要备份SVN存储库,以及团队成员的个人.EAP文件。
EA在DBMS上的用户管理分为两步。每个用户都需要对数据库的读/写访问权限,并且每个人还需要EA项目中的单独帐户。这些可以通过从Windows域导入轻松创建。
这假设您在项目中启用了用户安全性,您最希望这样做是为了防止并发编辑问题。
我对团队设置的建议始终是DBMS +用户安全性+基线。它为EA工件提供了一个位置,每个人总是看到相同的东西。
答案 1 :(得分:1)
我同意,我有相同的设置和环境。
我的文档中有来自i-net的代码片段。对不起,我没有来源。但是在根模型或项目中找到所有基线非常棒:
查找DBMS中的所有基准 STRG + F打开模型搜索。选项 - >管理搜索 - >创建新搜索 - >名称“查找所有基线” - >编辑器键入SQL-Editor。粘贴这个:
SELECT t_package.ea_guid AS CLASSGUID, t_document.ElementType AS CLASSTYPE, t_package.Package_ID as ID, t_package.Name, t_package.Notes as PackageNotes, t_document.Notes as BaselineComments
FROM t_document INNER JOIN t_package ON t_document.ElementID = t_package.ea_guid
现在你有了一个名为(查找所有基线)的新搜索,这非常舒服!
答案 2 :(得分:1)
目前我正在查看相同的问题,我发现这些有用:
部署Enterprise Architect http://www.sparxsystems.com/downloads/whitepapers/EA_Deployment.pdf
Enterprise Architect的版本控制最佳实践 http://www.sparxsystems.com/WhitePapers/Version_Control.pdf
<强> [更新] 强>
经过数月的考虑和测试后,我们的团队决定了版本控制路线。
每个Enterprise Architect项目都需要自己的数据库。这意味着如果您有5个项目,则需要5个数据库,每个团队一个。将其扩展到50个项目或系统,我们有50个数据库可供使用,管理等。
我们的方法是:
需要改进的地方:
我们希望承包商能够使用“云”访问这些模型,但我们需要先解决安全问题。
答案 3 :(得分:0)
DBMS设置还有一个考虑因素,那就是从远程位置使用存储库时的EA性能。 EA未针对其项目数据库(EAP或DBMS)的远程连接进行优化,并且慢速连接可能让您在编辑期间等待很长时间。