我想将包中 DDL 的生成包含到我们的夜间构建中,这样我们就不必签入生成模式(以及我们之后从模式生成的 ORM 类)。
如果没有 Generate Package DDL UI,我看不到任何通过命令行执行此操作的方法。EA 文档链接中没有信息
有没有人找到一种方法来自动化这个?
我想将包中 DDL 的生成包含到我们的夜间构建中,这样我们就不必签入生成模式(以及我们之后从模式生成的 ORM 类)。
如果没有 Generate Package DDL UI,我看不到任何通过命令行执行此操作的方法。EA 文档链接中没有信息
有没有人找到一种方法来自动化这个?
是的,使用 EA 的 API 完全可行。
所谓的“EA 对象模型”可从 EA(脚本)内部以及 .NET 和 Java API 中获得(而“插件模型”只能通过 .NET 获得)。与 EA 存储库的交互基于两个类,Repository
和Project
. 因此,对于命令行,您需要编写一个程序
Repository::OpenFile
Repository::GetProjectInterface
Repository::Get[Package/Element]By[ID/Guid]
Project::Generate[Package/Element]DDL
为了遍历包/元素结构,请使用Package::Packages
andPackage::Elements
集合(也可能使用Element::Elements
,但数据库模型通常在其他元素中没有元素)。
对于未来的读者,请注意Project
该类还包括类似的方法来生成代码、WSDL 和 XSD。
相关帮助文件页面位于自动化和脚本 - Enterprise Architect 对象模型 - 参考(在 EA 10.0.1007 中):