Перейти к основному содержимому

Схема хранения GoCPG

Справочник по таблицам GoCPG, границам прямого SQL-доступа и проверке архитектурных результатов в локальной DuckDB.

GoCPG

Эта страница нужна разработчикам и операторам, которые проверяют локальную CPG или разбирают расхождение архитектурного аудита. После проверки вы увидите, созданы ли таблицы архитектурных прогонов, и сможете отличить отсутствие данных от ошибки схемы.

GoCPG остаётся единственным владельцем записи в проектную DuckDB. Прикладной код должен читать CPG через gRPC. Команда gocpg query предназначена для локальной диагностики и интеграционных проверок; она не заменяет API-контракт.

Этот справочник описывает таблицы архитектурных результатов. Узлы и рёбра основного графа здесь не перечислены; для прикладного доступа используйте контракты gRPC.

Таблицы архитектурных результатов

Таблицы архитектурных результатов
Таблица Что хранит
cpg_architecture_components Компоненты и их стабильные UID для одного прогона.
cpg_architecture_memberships Классификацию файлов и символов с источником селектора.
cpg_architecture_edges Прямые и транзитивные зависимости между компонентами.
cpg_architecture_runs Идентичность завершённого прогона: commit, модель, правила, полнота и режим.
cpg_architecture_result_heads Указатель на последний завершённый канонический прогон проекта.
cpg_architecture_findings Находки, привязанные к run ID и устойчивому fingerprint.

Пустая cpg_architecture_findings означает, что в выбранном прогоне нет находок. Отсутствующая таблица означает другое: база создана старой или неполной схемой. Такую базу нельзя считать подтверждением чистой архитектуры.

Проверка локальной базы

Откройте PowerShell в каталоге исходной рабочей копии CodeGraph. Нужен бинарник GoCPG с поддержкой DuckDB и уже построенная CPG. Замените <path-to-cpg.duckdb> путём к своей базе. Команда читает схему и не меняет исходники:

.\gocpg\gocpg.exe query --db "<path-to-cpg.duckdb>" --sql "SELECT table_name FROM information_schema.tables WHERE table_name IN ('cpg_architecture_runs', 'cpg_architecture_result_heads', 'cpg_architecture_findings') ORDER BY table_name"

Успешная проверка выводит три имени таблиц. Если команда сообщает, что файл не найден, сначала создайте CPG штатным gocpg parse или managed update. Если выведено меньше трёх строк, обновите GoCPG и пересоздайте либо мигрируйте базу через поддерживаемый runtime-процесс.

Проверка реализации

Выполняйте следующую команду из каталога gocpg в исходной рабочей копии; нужен Go и зависимости сборки DuckDB, описанные в подготовке окружения.

Репозиторный тест создаёт временное хранилище, сохраняет канонический результат и проверяет детерминированный экспорт. Это проверка реализации, а не инструкция по работе с пользовательской базой:

go test ./pkg/architecture -run '^TestCanonicalResultsPersistAndExportDeterministicEvidence$' -count=1

Команда должна завершиться строкой ok gocpg/pkg/architecture. Ошибка сборки или отсутствие зависимости указывает на проблему окружения, а не на качество анализируемого кода.

Для чтения и экспорта рабочего результата используйте справочник интерфейсов и результатов.