У меня есть база данных postgresql, в которой потеряны некоторые записи. Я хочу взять дамп SQL pg_dump базы данных, сделанный несколько дней назад, и объединить его с текущей производственной базой данных. Многие записи будут дублироваться, поэтому дубликаты можно пропустить. Как лучше всего это сделать?
patch
может быть, вы, друг, могли бы попробовать создать новый дамп, мы назовем его current_dump и сделаем diff
против old_dump затем используйте
diff old_dump new_dump > patch.input
(copy the new_dump) to another file at this point new.db.dump)
patch new.db.dump patch.input
Возможно, вам придется отсортировать файлы дампа перед выполнением сравнения, и в зависимости от размера вашей базы данных это может быть нецелесообразно.
Также будьте очень осторожны и делайте это с резервной копией, пока не будете уверены в ее правильности.
В противном случае, возможно, есть инструменты типа ETL, которые могут это сделать.
Не зная, с каким дампом вы работаете (простой, tar или кастомный) ...
Если у вас есть dblink, вы можете выполнить восстановление в другую базу данных и перетащить данные в производственный блок.
Более запутанным решением может быть