@sl0

Как проще и правильнее перенести одну запись из бэкапа?

Здравствуйте, гуру sql. Есть такая проблема - админ удалил из базы одного нужного юзера. Есть бэкап и теперь нужно из этого бэкапа вытащить этого юзера. Проблема в том, что в базе много таблиц, которые ссылаются на таблицу users (сообщения пользователя, заказы и т.д). Есть ли возможность вытащить одной командой все данные по юзеру и ссылками на него, чтобы потом вставить в актуальную базу? Или надо отдельно идти по всем таблицам и искать там ссылки на нужный user_id и вставлять в каждую в отдельности?

Заранее спасибо.
  • Вопрос задан
  • 95 просмотров
Пригласить эксперта
Ответы на вопрос 2
saboteur_kiev
@saboteur_kiev
software engineer
Нет естественно. Никто не знает что у вас за структура и в каких таблицах что лежит.
Нужно искать.
Как вариант, админ мог удалить юзера, не удаляя его сообщения и заказы.
Ну это нужно руками смотреть.
Если у вас кастомный софт, то только самому лазить и искать все.
Ответ написан
Комментировать
@rPman
Если бакап достаточно свежий, можно сравнить бакапы (построчно каждую таблицу но эта операция достаточно простая и скрипт можно сгенирировать на основании структуры, вытаскивая ее из ddl, да тут структура то и не нужна), если искать разницу что именно удалено (то что есть в бакапе но нет в текущей базе, проверку делать по полю id (тот что primary key, ddl нужен именно чтобы выявлять составные), базы можно развернуть на одном сервере) то можно получить вполне готовый срез записей, просмотреть их глазками будет гораздо проще чем всю базу целиком.

посмотри pgdiff

Чем меньше расстояние в изменениях между бакапом и текущей базе, тем меньше лишних записей получится в результате.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы