================= Настройки проекта ================= Помимо глобальных настроек, применяемых для всего рабочего пространства, существуют возможность настройки отдельного проекта. Для этого из меню проекта выберите пункт **Properties** или нажмите горячую клавишу (по-умолчанию Alt + Enter). Затем выберите пункт **pgCodeKeeper**. Основные настройки проекта ~~~~~~~~~~~~~~~~~~~~~~~~~~ .. image:: ../images/main_props.png - **Disable SQL parser for unrelated files opened in SQL Editor / Отключить SQL парсер для сторонних файлов, открытых в SQL редакторе** - позволяет отключить сборщик pgCodeKeeper для файлов проекта, находящихся вне стандартных директорий. Это отключает поиск ошибок и ссылок на объекты внутри этих файлов. - **Use Unix-style newline characters / Использовать Unix символы переноса строк** - позволяет использовать Unix символы переноса в строках, например в телах функций, комментариях объектов и т.д. - **Bind project to database connection / Привязать проект к подключению к БД** - позволяет привязать проект к конкретной БД. Для данного проекта станет невозможно изменить БД на **Панель инструментов Eclipse**. - **Timezone for all DB connections / Временная зона для всех соединений с БД** - позволяет выбрать, какую временную зону использовать при соединении с базами данных. Отсутствует для MS SQL проектов. - **Enable project specific settings / Переопределить глобальные настройки (только для текущего проекта)** — позволяет переопределить некоторые :ref:`globalPref` для текущего проекта. Набор доступных для переопределения настроек может отличаться в зависимости от типа проекта. - **Use global ignore list / Использовать глобальный список игнорирования** - позволяет включить или отключить использование глобального списка различий со страницы настроек :ref:`ignoredObjects`. Списки исключений ~~~~~~~~~~~~~~~~~ Настройки, управляющие списками игнор файлов для данного проекта. Подробное описание работы со списками находится в разделе :ref:`ignoreList`. .. image:: ../images/ignore_props.png Кнопка **Edit .pgcodekeeperignore / Редактировать .pgcodekeeperignore** позволяет изменить стандартный игнор файл, находящийся в корне проекта. Для добавления существующего файла нажмите кнопку |add_obj|. Для удаления файла нажмите кнопку |delete|. Для создания нового файла нажмите кнопку |new_file|. Будет открыт редактор списка правил, аналогичный редактору на странице глобальных настроек :ref:`ignoredObjects`. .. image:: ../images/ignore_editor.png Для редактирования файла нажмите кнопку |editor_area|. Будет открыт редактор списка правил из текущего файла. Исключенные схемы ~~~~~~~~~~~~~~~~~ Настройки, регулирующие загрузку объектов из базы данных. Подробное описание работы находится в разделе :ref:`ignoreSchemaList`. .. image:: ../images/ignored_schemas.png Для добавления объекта нажмите кнопку |add_obj| - откроется редактор добавления нового объекта. Для удаления объекта нажмите кнопку |delete|. Для редактирования объекта нажмите кнопку |editor_area|. Библиотечные зависимости ~~~~~~~~~~~~~~~~~~~~~~~~ Настройки, управляющие библиотеками проекта. .. image:: ../images/lib_props.png **Библиотеки** - это подключаемые наборы данных объектов, которые "*склеиваются*" с объектами проекта при сравнении с удаленной базой данных. В качестве библиотек можно использовать директории (это может быть как другой pgCodeKeeper проект, так и обычная директория с файлами), дампы или же удаленная база данных. Кроме того, библиотеки возможно упаковать в zip-архив, загрузить на сервер, и подключить, указав URL архива. Для добавления библиотек воспользуйтесь соответствующими кнопками на боковой панели. Библиотеки загружаются в порядке, в котором они указаны в списке (самая верхняя библиотека будет загружена первой). Для изменения порядка перетащите элементы при помощи мыши. **Disallow overrides / Запретить переопределение.** Не исключена ситуация, когда проект и библиотека (или две библиотеки) содержат объекты с одинаковыми именами. Существует два варианта обработки таких ситуаций. При включенной настройке, такие конфликты вызывают остановку сравнения объектов. Отключенная настройка позволяет игнорировать конфликты: будет использован первый загруженный объект. Независимо от состояния настройки будет отображен вид :ref:`overrideView`, в котором будут отображены все конфликты. **Load nested dependencies / Загружать вложенные зависимости** - настройка, позволяющая загружать библиотеки, на которые ссылаются другие библиотеки (рекурсивная загрузка библиотек). Библиотека с зависимостями должна быть в формате проекта (или архива проекта) и содержать файл .dependencies с зависимостями этой библиотеки. В общем случае, для загрузки зависимостей библиотеки, контейнер этой библиотеки должен иметь включенную настройку *loadNested* в файле *.dependencies*. Например, в цепочке зависимостей *project → lib1 → lib2 → lib3* для загрузки *lib2* настройка должна быть включена в project, а для загрузки *lib3* настройка должна быть включена в project и в *lib1*. **Clear libraries cache / Очистить кэш библиотек** - позволяет удалить скачанные архивы из кэша . Диалоговое окно создания/редактирования/копирования библиотечной зависимости выглядит следующим образом. .. image:: ../images/lib_props_editor.png - **Name / Имя** - позволяет указать отображаемое имя библиотеки (по умолчанию используется **Path / Путь**). - **Path / Путь** - позволяет указать источник библиотеки (с поддержкой относительного пути). - **Owner / Владелец** - позволяет установить нового владельца для всех объектов библиотеки. - **Ignore privileges/owners / Игнорировать привилегии/владельцев** - позволяет отключить привилегии и владельцев объектов библиотечной зависимости. .. important:: Если у библиотеки заполнен владелец, он будет отображен вне зависимости от прочих настроек pgCodeKeeper. .. important:: Если у библиотеки не игнорируются привилегии, они будут отображены вне зависимости от прочих настроек pgCodeKeeper. Обновление БД ~~~~~~~~~~~~~ Настройки, управляющие обновлением базы данных, которые позволяют переопределить некоторые настройки со страницы :ref:`dbUpdate` для текущего проекта. Набор доступных для переопределения настроек может отличаться в зависимости от типа проекта. .. image:: ../images/db_update_props.png Структура проекта ~~~~~~~~~~~~~~~~~ Настройки соответстия типа объекта и его директории для текущего проекта. .. image:: ../images/project_structure.png **Split objects by schema / Разделять объекты по схемам** — определяет, группировать ли объекты внутри проекта по схемам. .. important:: Страница в режиме только для чтения. Для изменения структуры нужно использовать :doc:`Нормализацию проекта `. Дополнительные зависимости ~~~~~~~~~~~~~~~~~~~~~~~~~~ Настройки для ручного указания неявных зависимостей между объектами. .. image:: ../images/additional_dependencies.png Для добавления зависимости нажмите кнопку |add_obj| - откроется диалоговое окно. .. image:: ../images/new_additional_dependency.png Выберите тип источника и приёмника, заполните имена объектов, затем нажмите **ОК**. Для удаления зависимости нажмите кнопку |delete|. Для редактирования зависимости нажмите кнопку |editor_area|. .. |new_file| image:: ../images/pgcodekeeper_project_view/new_file.png .. |add_obj| image:: ../images/pgcodekeeper_project_view/add_obj.png .. |delete| image:: ../images/pgcodekeeper_project_view/delete_obj.png .. |editor_area| image:: ../images/pgcodekeeper_project_view/editor_area.png