Да, я исправил это! Итак, вот что я сделал. С некоторым поиском я обнаружил эту программу под названием «sqlitebrowser» и нашел эту другую страницу с разделом под названием «Как восстановить базу данных SQLite?» , в котором объясняется, что иногда можно исправить SQLite базы данных путем экспорта базы данных в файл SQL, а затем импорта файла SQL для создания новой версии базы данных.
Так что я попытался, но когда я импортировал в файле SQL я получил сообщение о том, что произошел сбой из-за УНИКАЛЬНОГО ограничения на таблицу «сессий» и что он отменял транзакцию.
К сожалению, когда я выполнил экспортируя в SQL, я выбрал опцию, чтобы сгруппировать вставки в как можно меньшее количество SQL команд, чтобы развернуть и развернуть всю таблицу «сессий». Позже я понял, что, если бы я не сгруппировал вставки, возможно, что импорт исправил бы базу данных (просто сбой в тех транзакциях, которые содержали повторяющиеся сеансы).
Однако в то время я еще не был уверен, что происходит, и не думал go возвращаться и реэкспортировать, чтобы восстановить SQL с большим количеством отдельных вставок.
Вместо этого я решил просмотреть файл SQL на наличие дубликатов вставок в таблице «сессий». Действительно, с некоторыми командами sed
и sort
(sort
против sort -u
, за которыми следует diff
), я смог определить, что сеансы с 227 по 236 были где-то дважды!
Поэтому я удалил дубликаты из файла SQL, а затем снова использовал sqlitebrowser , чтобы импортировать файл SQL и заново создать IPython
history.sqlite
файл. Затем я запустил i python и обнаружил, что% history magi c снова смог получить доступ ко всей моей истории.
Пожалуйста, дайте мне знать с комментарием и / или проголосуйте, если этот ответ кому-нибудь пригодится. Всего наилучшего.