Программно восстановить базу данных SQLite
У меня есть необходимость попробовать восстановить базу данных SQLite из программы.NET, если файл базы данных поврежден. Я нашел несколько сайтов, таких как Fix SQLite, и в FAQ он описывает, что вы можете:
В зависимости от того, насколько сильно повреждена ваша база данных, вы можете восстановить некоторые данные с помощью интерфейса командной строки, чтобы выгрузить схему и содержимое в файл, а затем создать заново.
Кто-нибудь знает способ программного восстановления базы данных SQLite в.NET?
2 ответа
Вы пропускаете одно важное слово: вы можете "восстановить некоторые данные", это не ремонт!
Если существует ситуация, когда поврежденная база данных может быть полностью восстановлена без взаимодействия с пользователем, то она не будет повреждена, и repair
была бы стандартной функцией SQLite
Вы можете рассмотреть возможность реализации своей собственной стратегии восстановления базы данных. Вы можете сохранить резервные копии файла SQLite, а затем проверить, что все в порядке, используя:
PRAGMA integrity_check;
Если ошибки найдены, вы можете вернуться к резервной копии.