Да, это вполне осуществимо с использованием API EA.
Так называемая «объектная модель EA» доступна из EA (скриптов), а также из .NET и Java API (в то время как «модель надстройки» доступна только через .NET). Взаимодействие с хранилищем EA основано на двух классах: Repository
и Project
. Таким образом, для командной строки вы должны были бы написать программу, которая
- подключается к соответствующему хранилище EA -
Repository::OpenFile
- получающего интерфейс Project -
Repository::GetProjectInterface
- получает пакеты и элементы -
Repository::Get[Package/Element]By[ID/Guid]
- генерирует DDL -
Project::Generate[Package/Element]DDL
для того, чтобы пересечь структуру пакета/элемента, использовать Package::Packages
и Package::Elements
(и, возможно, Element::Elements
, но модели баз данных обычно не имеют элементов внутри других элементов).
Для будущих читателей обратите внимание, что класс Project
также включает аналогичные методы для генерации кода, WSDL и XSD.
Соответствующие страницы файл справки находятся под автоматизации и сценариев - Enterprise Architect Model Object - Reference (в EA 10.0.1007):
- Repository Пакет - Repository класса
- интерфейс Project Package - Проект класса
- Repository Пакет - класс Пакет
- Repository пакет - элемент класса
- Repository Пакет - класс Коллекция