Параметры инструмента рефакторинга базы данных ArcSDE
Мы используем liquibase в качестве эволюционного инструмента управления изменениями БД в наших приложениях, и он прекрасно работает, когда мы используем его в "общих" схемах баз данных.
Но мы также работаем с ГИС-приложениями, использующими платформу esri arcSDE 9.3 поверх Oracle, и в этом случае все (или почти все) таблицы (как ГИС, так и "буквенно-цифровые" таблицы) в схеме управляются (создаются таблицы, предоставления и т. Д.) Посредством ArcSDE. Поэтому, когда мы хотим создать новый класс объектов, теперь мы используем arcCatalog, и таким образом невозможно управлять изменениями классов объектов напрямую через SQL с помощью liquibase или другого инструмента автоматического рефакторинга.
Поэтому, если мы не можем использовать liquibase для управления изменениями, по крайней мере, мы хотим выполнить операции управления над нашими функциями через командную строку. Мы начали искать инструменты, которые избегают использования arcCatalog, и затем пытаемся автоматизировать изменения с помощью скриптов, мы исследуем эти возможности:
Попробуйте захватить SQL, который выполняет arcCatalog/arcSDE каждый раз, когда мы вносим изменения в один класс объектов, отслеживающий соединение оракула. В результате мы получаем слишком сложный набор инструкций SQL, который включает индексы, таблицы версий и т. Д., Поэтому мы отказались от этого.
Используйте команды администратора sdelayer и sdetable, установленные на сервере arcSDE.
Используйте инструмент управления данными: библиотеку на основе Python для управления классами пространственных объектов, но она должна выполняться с компьютера с установленной версией для настольного компьютера.
Эти два последних варианта обеспечат способ управления функциями из командной строки, но наша цель - найти / разработать инструмент для управления изменениями, аналогичными способам, которые применяются в Liquidibase. Но с этими инструментами нам нужно будет найти инструмент, который позволил бы нам сопоставить каждую операцию SQL DDL с командой arcSDE, и в настоящее время ни один инструмент рефакторинга db не предоставляет этого (в настоящее время у нас есть проверка liquibase, dbdeploy, flyway).
Кто-нибудь решил эту проблему эволюционного управления изменениями с помощью arcSDE? Любое понимание другого способа решения этой проблемы?
1 ответ
Я попробую это сделать, хотя я не знаком с одним из упомянутых вами продуктов (в частности, с жидкой базой - я использовал Oracle и очень хорошо знаком с ArcGIS (ArcMap & ArcCatalog).
Вот лишь некоторая дополнительная информация, которая может помочь, и моя интерпретация вашего вопроса.
Моя интерпретация - "Какой простой способ управлять или позволить нам автоматизировать управление нашими таблицами ГИС-данных в нашей базе данных Oracle без необходимости постоянно использовать ArcCatalog?"
Итак - я верну эту концепцию обратно в кольцо - я знаю, что SQL Server имеет пространственные типы данных "геометрия" и т. Д., И что вы можете обойти SDE и позволить ArcGIS напрямую подключать и интерпретировать эти данные, даже не устанавливая SDE. Я также знаю, что у Oracle есть совместимые пространственные типы. Поэтому я мог бы рассмотреть возможность переноса моих данных из управляемых FC, которые создает ArcCatalog, и помещать их в таблицы на основе геометрии оракула. Таким образом, вы можете обращаться с ними как с обычными столами, вырезать ESRI из раствора, управлять ими с помощью жидкой основы и т. Д. Надеюсь, это поможет.
Я также хотел бы рассмотреть возможность обновления до 10.1 или хотя бы до 10.0 (обещаю, что я не являюсь секретным продавцом), хотя это потребует от ваших пользователей идти с вами на стороне клиента (http://resources.arcgis.com/en/help/main/10.1/index.html#//002q000000n8000000), поскольку новые API Python намного проще и быстрее в использовании (arcpy по сравнению с моделью GP), если вы решите использовать Python для управления своими вещами. (Независимо от того, либо API не очень хорошо разработан и не интуитивно понятен для кода или быстро.)
Удачи.