Project

General

Profile

Feature #1992

Updated by Mellon over 8 years ago

Как указано в #1991, повреждение бд приложения вызывает проблему. Вариантом её решения является попытка автоматического восстановления поврежденной базы данных. 

 Например, имеем следующую ситуацию: 
 <pre> 
 % sqlite3 history.db                              
 SQLite version 3.12.0 2016-03-29 10:14:15 
 Enter ".help" for usage hints. 
 sqlite> pragma integrity_check; 
 Error: database disk image is malformed 
 sqlite>  
 </pre> 

 В таком случае возможным    решением является следущая последовательность действий: 
 0. Смотрим размер файла базы данных. 

 1. Смотрим доступное место на диске с директорией содержащей поврежденную базу 

 2. Если 1. меньше 0., то предлагаем пользователю 3 варианта: 
 1) почистить раздел вручную и попробовать снова; 
 2) удалить старую базу и создать новую; 
 3) выйти из программы 

 3. Если    1. больше 0., то: 

 4. переименовываем поврежденную базу в <name>-backup.db 

 5. Дампим поврежденную базу в новую, например: 
 <pre> 
 sqlite3 history-backup.db '.dump' | sqlite3 sqlite history.db 
 </pre> 

 6. Выдаем результат, например. 
 "Размер файла поврежденной базы данных: 522975232 Кб 
 Размер файла восстановленной базы данных: 
 489742336 Кб, Восстановлено 2946948 записей."

Back