Инструмент для извлечения строки БД и ВСЕХ объектов, на которые она ссылается (рекурсивно)? - PullRequest
0 голосов
/ 17 января 2020

Для нашего проекта стало все труднее воспроизводить определенные условия ошибок, которые обнаруживаются при продуктивном использовании. Извлечение и воссоздание определенных условий иногда занимает несколько часов, чтобы повторно ввести данные и воспроизвести ситуацию, главным образом потому, что требуемый «график» может быть огромным, и есть много ссылочных ограничений, которые должны быть выполнены, и воссоздать их в базе данных анализа (производство не может быть используется для этого по понятным причинам) в правильном порядке часто бывает чрезвычайно сложным и утомительным. - будет проходить по всему графику, как определено ссылками таблицы (внешними ключами), и будет рекурсивно выдавать все ссылочные записи. В идеале он должен выдавать все эти строки (имя таблицы, имена столбцов и их значения) как операторы sql -insert, чтобы их можно было выполнять как сценарии вставки для загрузки соответствующего подмножества в другую БД для анализа.

Существует ли такой инструмент? Я мог бы представить, что это не так уж редко и exoti c wi sh или требование. Или это мечтательный сон, и я собираюсь заняться более длительным программированием? DB, который мы используем, это Oracle (v12) - на случай, если это имеет значение.

Надеюсь, я смогу прояснить ситуацию и передать намерение.

1 Ответ

0 голосов
/ 17 января 2020

Годы a go Я сделал это, и это было очень легко, потому что у меня было объектно-реляционное отображение на java объектов. Я мог бы просто взять «родительский» объект из исходной базы данных [который будет рекурсивно перебирать все отношения и забирать всех дочерних элементов], открыть соединение с целевой БД и сохранить полностью созданное дерево родительских объектов. Я не знаю других инструментов. Люди в моей компании стараются периодически обновлять базу данных pre-prd из prod.

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

Если у вас проблемы с данными, это, скорее всего, ошибка в коде, поэтому, если вы сможете заставить разработчиков «написать тест, который не прошел» на основе условий, вам будет лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...