Начните бесплатный 3-дневный пробный период
Зарегистрируйтесь и попробуйте все премиум-функции бесплатно.
*Только для новых пользователей. Один пробный период на пользователя.


Чтобы документировать схему базы данных с помощью ИИ, выгрузите метаданные, проверьте факты. Следуйте процессу работы с ИИ; строки и пароли запрещены.
Ключевые выводы
- Сначала зафиксируйте базу, среду, область схемы и версию.
- Извлекайте определения и каталог через отдельную роль только для чтения.
- Не передавайте модели пароли, строки подключения, результаты запросов или рабочие строки.
- Считайте ключи и ограничения доказательствами; не угадывайте связи по именам.
- Оставляйте неизвестные и противоречивые сведения видимыми.
- Разделите техническую и предметную проверку между ответственными владельцами.
- Версионируйте документ и сравнивайте его после каждой миграции.
Фраза «задокументировать базу» не задаёт границ. Начните с карточки области и читателей.
| Поле | Синтетический пример |
|---|---|
| Роль базы | PostgreSQL для сервиса заказов |
| Среда | Утверждённое определение рабочей схемы |
| Движок и версия | PostgreSQL 18 |
| Включённые схемы | orders, catalog |
| Исключения | Хранилища аутентификации и аудита |
| Версия | Миграция 2026_09_04_01 |
| Читатели | Разработчики и дежурные инженеры |
| Результат | Справочник объектов, карта связей, вопросы |
| Запрещено | Запросы к строкам данных, DDL, запись, неутверждённый экспорт |
Решите, описывает ли документ логические понятия, физическую реализацию или оба слоя. Физический справочник сохраняет точные идентификаторы, типы, значения по умолчанию, допустимость NULL и ограничения. Предметный смысл требует доказательств владельца и отдельной маркировки. Смешение слоёв создаёт ложную уверенность в сгенерированном тексте.
Укажите и границы: поведение интерфейса относится к документации API, границы сервисов — к архитектурной диаграмме, а порядок внедрения — к плану миграции. Эти материалы можно связать ссылками, но нельзя заменять один другим.
Используйте отдельную роль, которая может видеть только нужный каталог и определения. Она не должна владеть объектами, менять данные, запускать миграции или читать посторонние таблицы. OWASP рекомендует минимальные привилегии, разделение учётных записей и отказ приложений от административных прав.[4] То же правило действует для инструмента документирования.
Не помещайте секреты в запрос модели, историю оболочки, экспорт, снимки экрана или итоговый текст. Пользуйтесь утверждённым брокером секретов либо защищённой локальной конфигурацией. Если команда требует пароль или полную строку подключения в аргументе, остановитесь и выберите безопасный способ организации.
В PostgreSQL pg_dump --schema-only выгружает определения объектов без данных, однако файл может раскрыть имена, комментарии, владельцев, функции, политики и внутреннюю структуру.[3] Поэтому проверьте и минимизируйте его локально. «Только схема» не означает «публично» или «разрешено для любой модели».
Манифест сбора должен содержать версию движка и сервера, базу и выбранные схемы, запросы каталога или команду без секретов, время, ревизию миграции, оператора, утверждённое хранилище, исключённые классы объектов и пробелы из-за прав доступа. Если полный экспорт слишком широк, запросите только разрешённые представления information_schema и системного каталога. Человек выполняет запрос в контролируемой среде; ИИ-агент не получает доступ к базе.
Создайте детерминированный перечень схем, таблиц, представлений, материализованных представлений, последовательностей и других включённых типов. Сохраняйте точные квалифицированные имена. Для объекта зафиксируйте тип, роль владельца при необходимости, источник назначения, зависимости и состояние: актуален, устарел или требует проверки.
Не исключайте объект только потому, что модель не умеет его объяснить. Оставьте VERIFY и назначьте вопрос владельцу. Для представления отличайте точное определение от предполагаемого бизнес-описания. Для секционированной таблицы укажите родителя и стратегию секционирования. Специфичные для движка конструкции сохраняйте и отмечайте как ограничение переносимости.
Представление PostgreSQL information_schema.columns показывает доступные метаданные: имя, позицию, значение по умолчанию, допустимость NULL и тип данных.[1] Извлекайте необходимые поля, но не выдавайте каталог за объяснение предметного смысла.
| Атрибут | Правило проверки |
|---|---|
| Объект и столбец | Сохранить точное написание и регистр |
| Позиция | Брать из каталога, а не из порядка модели |
| Тип | Сохранить существенные особенности движка |
Допустимость NULL | Отделить принудительное состояние от смысла NULL |
| Значение по умолчанию/генерация | Сохранить выражение и проверить эффект |
| Идентификатор/последовательность | Указать механизм генерации и владельца |
| Правило сортировки | Записать, если от него зависит сравнение |
| Комментарий | Пометить как сохранённый комментарий, а не доказанную истину |
| Предметное описание | Сослаться на владельца или спецификацию |
| Неизвестное | Оставить VERIFY и конкретный вопрос |
Не добавляйте значения из рабочих строк, «чтобы столбец был понятнее». Синтетические значения используйте только после того, как владелец подтвердит, что они точно иллюстрируют контракт. Значение вроде status = active всё равно может ввести в заблуждение, если допустимый словарь другой или зависит от времени. Сложное выражение можно разобрать по процессу объяснения кода с ИИ: дать точное ограниченное определение, запросить отдельные утверждения и проверить каждое.
Связи выводятся из первичных, уникальных, внешних ключей и релевантных исключающих ограничений, а не из сходства имён. Представление PostgreSQL table_constraints сообщает тип ограничения и режим отложенной проверки.[2] Соедините эти данные с метаданными ключей и ссылок, чтобы получить обе стороны и точный порядок столбцов.
Для связи укажите исходный и целевой объект, упорядоченные столбцы, имя и тип ограничения, действия обновления и удаления, отложенную проверку при необходимости, обязательность на основании допустимости NULL и контракта приложения, источник и версию извлечения.
Наличие customer_id в двух таблицах не доказывает связь. Отсутствие FK также не доказывает отсутствия прикладной связи. Во втором случае документируйте связь, только если её подтверждают код, утверждённая спецификация или владелец, и помечайте её как не обеспечиваемую ограничениями базы. Сохраняйте это различие и на диаграммах, и в тексте. Составные ключи должны сохранять порядок столбцов: модель, переставившая их ради читаемости, может изменить смысл. Самоссылки, связующие таблицы, полиморфные ассоциации и межбазовые связи требуют явного доказательства.
Ограничения определяют допустимые состояния базы. Отдельно запишите первичные, уникальные и внешние ключи, проверки, запреты NULL и исключающие ограничения. Точное выражение остаётся источником; пояснение человека проходит независимую проверку.
Индекс — объект реализации, а не автоматически бизнес-правило. Уникальный индекс может обеспечивать правило, обычный чаще описывает способ доступа. При необходимости сохраняйте выражения, порядок, направление сортировки, предикаты и включённые столбцы, но не обещайте производительность только по метаданным.
Значения по умолчанию, триггеры, генерируемые столбцы, построчные политики, функции и права доступа могут менять наблюдаемое поведение. Включайте их в пределах области, но не разрешайте модели выполнять или переписывать определения. Возможная ошибка проходит обычный процесс изменения базы; проверка SQL с ИИ — отдельный защищённый процесс.
Пакет для модели содержит только проверенные метаданные, стабильные идентификаторы доказательств, шаблон и запреты:
Упорядочь предоставленные метаданные схемы в справочник объектов.
Точно сохрани имена, типы, выражения, ограничения, порядок столбцов и идентификаторы доказательств.
Не выводи связи из имён. Не придумывай смысл, владельца, чувствительность,
кардинальность или примеры. Неподтверждённое пометь [VERIFY] и укажи,
какое доказательство нужно. Не запрашивай доступ, секреты или строки данных.
Верни текст, таблицу связей и источник диаграммы, но не исполняемый DDL.
Разделите результат на область, перечень объектов, столбцы, ограничения, связи, представления, права доступа, неизвестные сведения и указатель доказательств. Идентификатор доказательства рядом с каждым утверждением упрощает проверку и мешает модели скрыть пробел красивым текстом.
Диаграмма — производное представление тех же фактов. Запросите узлы и подписанные рёбра, затем примените процесс проверки архитектурной диаграммы. Пропущенное ребро, обратное направление FK или придуманная кардинальность остаются дефектом независимо от оформления.
Сначала инженер проверяет структуру: каждый объект присутствует один раз; имена, типы, значения по умолчанию, выражения и позиции совпадают; столбцы ограничений и порядок верны; направление и действия FK точны; включённые представления, триггеры, политики и права доступа представлены; каждое ребро диаграммы имеет идентификатор доказательства; в документе нет строк данных и исполняемых команд.
Затем владельцы объектов и предметной области проверяют смысл, жизненный цикл, чувствительность и операционные заметки. Модель не может по каталогу определить, зачем существует столбец, какая таблица авторитетна и кто владеет понятием. Противоречащие версии остаются рядом до решения ответственного лица.
Проверьте документ на синтетических случаях: допускающий NULL внешний ключ, составное уникальное ограничение, переименованный столбец с представлением совместимости, отложенная связь и таблица без первичного ключа. Рецензент должен найти контролирующее доказательство и назвать неизвестное.
Храните версию схемы, время извлечения, версию запроса или инструмента и манифест доказательств. После каждой миграции повторите сбор тем же путём только для чтения и сравните факты на уровне объектов, прежде чем просить ИИ кратко изложить изменения.
Классифицируйте расхождения, а не принимайте целиком переписанный документ:
| Класс изменения | Примеры | Проверка |
|---|---|---|
| Добавление | Новая таблица, столбец, ограничение или представление | Полнота и владение |
| Поведение | Значение по умолчанию, триггер, политика или проверка | Влияние на приложение и эксплуатацию |
| Ссылочная структура | Ключ, действие или порядок столбцов | Связи и целостность |
| Доступ | Право, владелец или политика | Безопасность |
| Удаление или переименование | Удаление или переименование | Потребители и миграция |
| Только документация | Уточнение утверждённого смысла | Источник и версия |
Не позволяйте новому тексту скрыть разрушительное изменение. Каждая строка сводки ссылается на миграцию и метаданные до/после. При расхождении развёрнутая схема является фактом структуры, а несоответствие становится отслеживаемой задачей.
Нет. В них нет рабочих строк, но могут быть имена объектов, внутренняя структура, комментарии, функции, политики и сведения о доступе. Их всё равно нужно классифицировать, проверять и минимизировать.
Нет. Извлеките разрешённые метаданные самостоятельно через роль с минимальными правами. Модель получает ограниченный артефакт, а не многоразовые секреты и возможность исследовать систему.
Нет. Совпадение имён — гипотеза. Нужны метаданные ключа либо явно отмеченное доказательство из кода, спецификации или от владельца; непринудительные связи остаются отдельными.
Нет. Здесь главное — реализованные объекты, определения, ограничения, связи и изменения версии. Словарь данных глубже описывает смысл полей, единицы, словари значений, владение, происхождение и управление данными.
Точные определения каталога можно цитировать как доказательство, но модель не должна создавать исполняемый DDL в этом процессе. Изменения относятся к отдельно проверяемым миграциям.
Сохраните точное определение или стабильную ссылку, зависимости, контекст выполнения и подтверждённое назначение. Отделяйте факт каталога от объяснения и отмечайте особенности движка.
Оставьте обе версии, разделите структурное и семантическое утверждение и назначьте решение ответственному владельцу. Не просите ИИ выбрать более правдоподобный вариант.
После каждой миграции или существенного изменения политики доступа. Сначала сравните детерминированные метаданные, проверьте затронутые разделы и выпустите новую версию, не перезаписывая историю.
information_schema.columns — https://www.postgresql.org/docs/18/infoschema-columns.htmlpg_dump — https://www.postgresql.org/docs/18/app-pgdump.htmlSources checked 4 сентября 2026 г.
Зарегистрируйтесь и попробуйте все премиум-функции бесплатно.
*Только для новых пользователей. Один пробный период на пользователя.





