Структура проекта

Проект PostgreSQL по-умолчанию имеет следующую структуру:

.
├─ EXTENSION
└─ SCHEMA
   ├─ schema_name
   ├─ ...
   └─ another_schema_name
      ├─ another_schema_name.sql
      ├─ DOMAIN
      ├─ FTS_CONFIGURATION
      ├─ FTS_DICTIONARY
      ├─ FTS_PARSER
      ├─ FTS_TEMPLATE
      ├─ FUNCTION
      ├─ OPERATOR
      ├─ PROCEDURE
      ├─ SEQUENCE
      ├─ STATISTICS
      ├─ TABLE
      │  └─ table_name.sql
      ├─ TYPE
      │  └─ type_name.sql
      └─ VIEW
         └─ view_name.sql
  • schema_name … another_schema_name - имена схем.

  • another_schema_name.sql - обязательный файл с определением схемы, имя должно совпадать с именем директории.

  • table_name.sql, type_name.sql, view_name.sql - файлы с определениями объектов. Имена указываются без имени схем.

  • все перегруженные функции хранятся в одном файле. Например, функции public.func(int) и public.func(text) будут расположены в SCHEMA/public/FUNCTION/func.sql.

  • определения индексов, ограничений, триггеров и правил расположены в файлах родительских объектов. Например, индекс public.ii для таблицы public.t1 будет расположен в SCHEMA/public/TABLE/t1.sql.

Проект MS SQL по-умолчанию имеет следующую структуру:

.
├─ Assemblies
├─ Functions
├─ Security
│  ├─ Roles
│  ├─ Schemas
│  │  └─ schema_name.sql
│  └─ Users
├─ Sequences
├─ Stored Procedures
├─ Tables
│  └─ schema_name.table_name.sql
├─ Types
│  └─ schema_name.type_name.sql
└─ Views
   └─ schema_name.view_name.sql
  • schema_name.sql - обязательный файл с определением схемы.

  • schema_name.table_name.sql, schema_name.type_name.sql, schema_name.view_name.sql - файлы с определениями объектов. Имена указываются с именем схемы.

  • определения индексов, ограничений, триггеров расположены в файлах родительских объектов. Например, индекс dbo.ii для таблицы dbo.t1 будет расположен в Tables/dbo.t1.sql.

Проект ClickHouse по-умолчанию имеет следующую структуру:

.
├─ DATABASE
│   └─ database_name
│       ├─ database_name.sql
│       ├─ TABLE
│       │   └─ table_name.sql
│       ├─ DICTIONARY
│       │   └─ dictionary_name.sql
│       └─ VIEW
│           └─ view_name.sql
├─ FUNCTION
│   └─ function_name.sql
├─ POLICY
│   └─ policy_name.sql
├─ USERS
│   └─ user_name.sql
└─ ROLE
    └─ role_name.sql
  • database_name.sql - обязательный файл с определением схемы, имя должно совпадать с именем директории.

  • table_name.sql, dictionary_name.sql, view_name.sql - файлы с определениями объектов. Имена указываются без имени базы данных в директории соответствующей базы данных.

  • function_name.sql, policy_name.sql, user_name.sql, role_name.sql - файлы с определением объектов.

  • определение индексов и ограничений расположены в файлах родительских объектов. Например ограничение check_t1 для таблицы default.t1 будет рассположен в DATABASE/default/TABLE/t1.sql

Кроме этого в проекте могут содержаться следующие директории и файлы:

Директория MIGRATION содержит сохраненные скрипты миграции. Автоматическое сохранение и удаление скриптов миграции в данной директории можно выбрать на странице настроек Обновление БД.

Директория OVERRIDES содержит файлы переопределения свойств объектов. Внутренняя структура данной директории дублирует структуру проекта. Сохранить переопределения свойств возможно, выбрав соответствующую опцию при сохранении объектов в проект. На данный момент поддерживается переопределение привилегий и владельцев объектов базы данных.

Директория .settings содержит настройки проекта.

Файл .dependencies хранит список библиотек в виде XML-файла. Редактируется через настройки проекта.

Файл .pgcodekeeper является маркером проекта pgCodeKeeper.

Файл .pgcodekeeperdependencies содержит неявные зависимости объектов. Редактируется через настройки проекта.

Файл .pgcodekeeperignore содержит правила игнорирования объектов. Подробное описание работы со списками находится в разделе Список исключаемых объектов. Редактируется через настройки проекта.

Файл .pgcodekeeperignoreschema содержит правила игнорирования схем. Подробное описание работы находится в разделе Исключение схем при загрузке. Редактируется через настройки проекта.

Файл .project является маркером проекта Eclipse.

Файл structure.properties хранит структуру проекта. Редактируется через Нормализацию проекта.