Author Topic: Как восстановить контакт из архивной копии БД?  (Read 4305 times)

0 Members and 2 Guests are viewing this topic.

Offline -SM-

У меня по непонятным причинам удалился контакт из БД. На сервере он не ищется, ибо забыл и е-мейл, и уин, да и история была там с досерверных времен, да и есть ли он на сервере сейчас вообще - большой вопрос. Но именно она, история, и понадобилась. Этот контакт есть в  резервных копиях БД нескольколетней давности. Вопрос - как его оттуда скопировать в текущую базу вместе с историей, не затрагивая ничего больше?
 

Offline dartraiden

Взять резервную копию, подложить в Миранду и запуститься с этой копией, не выходя в сеть. Удалить оттуда все прочие контакты и учётки, кроме этой учётки и этого контакта. Затем импортом всосать в актуальную базу "контакты и историю". Раз там остался один контакт, только он и всосётся.

Ну или запуститься с резервной копии, экспортировать историю контакта через NewStory / Msg_Export, запомнить уин. Затем добавить этот контакт по уину в актуальную базу и импортом всосать JSON с историей в него.
« Last Edit: 26 12 2023, 15:09:47 by dartraiden »
 

Offline -SM-

Затем импортом всосать в актуальную базу "контакты и историю".
Этот путь вроде +- нормальный. Только импорт, он где? В DBE++ предлагают вроде только импорт из какого-то ini-файла, а где еще импорт есть?
Вообще, надо бы добавить копирование/перемещение контакта с историей и объединение историй, если контакт уже был, из внешней БД в текущую и наоборот, из текущей в другую внешнюю.
 

Offline dartraiden

Речь шла про плагин Import. Главное меню, либо ПКМ по контакту.

Вообще, надо бы добавить
Впервые вижу такую необходимость за добрый десяток лет, в общем-то, вопрос решается экспортом/импортом контакта через редактор базы, а затем экспортом/импортом истории этого контакта.
« Last Edit: 26 12 2023, 18:05:36 by dartraiden »
 

Offline -SM-

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

Заранее еще вопрос - что будет делать импорт, если контакт уже есть в БД? А цель - доимпортировать пропавшее? Нормально сработает?
 

Offline dartraiden

Смержит оба контакта. Чтобы не задваивались события, в импорте есть опция отсеивания дубликатов.
Кроме того, отсеивать дубликаты умеет и проверка базы на ошибки.
« Last Edit: 26 12 2023, 18:17:18 by dartraiden »
 
The following users thanked this post: -SM-

Offline -SM-

отсеивать дубликаты
Ну вопрос скорее был связан не с этим, а с наоборот - не грохнул бы он историю "боевой" БД для того контакта, для которого делается доимпорт из бекапа. А дубликаты не проблема.
 

Offline -SM-

отсеивать дубликаты умеет и проверка базы на ошибки.
.... Как-то оно не совсем отсеивает. А алгоритм отсеивания какой?
Вот это - точно два дубликата, один приходил как был в онлайне, другой когда-то прилетел по Load Server History. timestamp - разный. Содержание - одно.

Code: [Select]
    "history" : [{
    "type" : 0,
    "timestamp" : 1535917665,
    "isotime" : "2018-09-02T19:47:45Z",
    "flags" : "r",
    "body" : "схему модема прикинем?"
},{
    "type" : 0,
    "timestamp" : 1535917667,
    "isotime" : "2018-09-02T19:47:47Z",
    "flags" : "r",
    "body" : "схему модема прикинем?"
}