Виды и редакторы

Редактор проекта pgCodeKeeper

Редактор проекта – основной способ работы с pgCodeKeeper. Интерфейс редактора, состоящий из нескольких основных частей:

  1. Панель инструментов Eclipse
  2. Панель инструментов редактора
  3. Таблица различий
  4. Панель сравнения
  5. Счетчик объектов
_images/main_view.png

Панель инструментов Eclipse содержит инструменты для выбора источника данных, с которым предстоит работать.

Панель инструментов редактора предназначена для работы со списком объектов. Существуют следующие возможности:

  • check_all – выбрать все элементы.
  • uncheck_all – снять выбор со всех элементов.
  • loop_obj – инвертировать выбор элементов.
  • copy_edit – копировать набор выбранных элементов в буфер обмена как регулярное выражение.
  • empty_filter / filter_tsk - неактивный / активный фильтр объектов.
  • Фильтр списка объектов по имени или регулярному выражению.
  • Применить изменения к проекту
  • Применить изменения к базе данных
  • Получить изменения

Таблица различий отображает список объектов, которые различаются в сравниваемых схемах БД. Здесь доступна информация: тип объекта, тип изменения, имя объекта, контейнер, пользователь git, пользователь базы данных.

Тип объекта - поддерживаются следующие типы объектов: SCHEMA, FUNCTION, PROCEDURE, TABLE, VIEW, CONSTRAINT, INDEX, TRIGGER.

Для PostgreSQL дополнительно поддерживаются следующие типы: TYPE, DOMAIN, OPERATOR, FTS_PARSER, FTS_TEMPLATE, FTS_DICTIONARY, FTS_CONFIGURATIO, RULE.

Для MS SQL дополнительно поддерживаются следующие типы: USER, ROLE, ASSEMBLY.

Тип изменения - объект может находиться в трех состояниях: существовать только в базе данных, только в проекте или и в проекте и в базе данных. В зависимости от состояния, объекты в списке изменений помечаются как remote, project и edit соответственно.

Контейнер - имя родительского объекта, например для индекса - это имя таблицы, которой он принадлежит.

Пользователь git - имя пользователя, который последним изменил файл проекта для данного объекта. В том случае, если файлы были изменены локально, то к имени пользователя будет добавлен символ „*“. Для отображения данного столбца, проект должен быть подключен к системе контроля версий и должна быть включена соответствующая опция на странице настроек Редактор проекта.

Пользователь базы данных - имя пользователя базы данных, который последним изменил объект в базе данных. Для отображения данного столбца необходимо расширение pg_dbo_timestamp.

Панель сравнения показывает изменения, произошедшие в SQL представлении объекта.

Счетчик объектов отображает выбранное и общее количество объектов в таблице.

SQL редактор

SQL редактор внешне не отличается от обычного текстового редактора Eclipse, но в нем имеется возможность подсветки синтаксиса SQL, автоподстановки шаблонов SQL запросов и навигации по объектам схемы базы данных.

_images/autocomplete.png

При работе с SQL редактором в верхнем тулбаре доступны следующие возможности:

quick_update - Quick update / Быстрое обновление. Исполнение скрипта миграции для различий между объектом в текущем файле проекта и соответствующим объектом в базе данных. Если изменения затрагивают объекты из других файлов или модифицируют данные (например удаление колонки), то обновление не произодет.
update_ddl - Execute selection / Выполнить выбранное. Исполнение текущего скрипта миграции (или выделенного текста) в выбранной базе данных.
progress_stop - Cancel execution / Отменить выполнение. Отмена исполнения текущего скрипта миграции.
refresh - Get changes / Получить изменения. Обновляет редактор проекта, в котором находится текущий файл. Применимо только к файлам проекта.

Просмотр зависимостей объекта БД

Вид pg Dependencies / pg Зависимости показывает зависимости, в которых участвует текущий объект, выбранный в панели различий активного редактора проекта.

_images/pg_depend.png

Стрелки указывают на направление связи от зависящего объекта к его зависимости.

Переключатель Project - Remote / Проект - БД позволяет выбрать, для какой БД, участвующей в сравнении, показывать объекты и зависимости. После переключения необходимо повторно выбрать элемент в панели различий редактора.

Кнопка Add depcy / Добавить зависимости позволяет открыть диалог ручного добавления зависимостей.

_images/manual_depcies.png

В этом диалоге можно явно задать зависимости между объектами БД. Это может понадобиться, например, в случае если автоматическое распознавание зависимостей не сработает для некоторой сложной зависимости. Добавленные зависимости будут учтены при генерации последовательности выражений скрипта наката.

Окно состоит из двух частей, которые служат для добавления зависимостей к сравниваемым БД.

Для добавления зависимостей между объектами, достаточно ввести начльные буквы из названия объекта и из выпадающего списка выбрать имена зависимых объектов и нажать на кнопку Add / Добавить. Зависимость отобразится в списке добавленных.

Для удаления выделите связку зависимых объектов и нажмите Remove / Удалить.

Перезапись объектов

Вид Object overrides / Перезапись объектов отображает список переопределенных объектов в библиотеках для активного редактора проекта. Данный вид автоматически отображается при получении изменений, если присутствуют хотя бы один конфликт.

_images/override_view.png

Кнопка sync отображает записи, относящиеся только к объектам, выбранным в панели различий активного редактора проекта.

Контекстное меню позволяет открыть обе версии объекта, а также просмотреть различия в специальном редакторе сравнения.