database disk image is malformed

Восстановление внешней базы данных mobi_s.sqlite3

Исходная ситуация

При открытии обработки или в процессе работы в логе появляются сообщения:

database disk image is malformed

Причина

Причиной ошибок в базе данных sqlite может служить повреждение данных в файле (физические/логические повреждения жесткого диска, последствия вирусов, ошибки при копировании файла…).

Решение

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

http://www.sqlite.org/download.html, необходимо скачать «sqlite-tools-win32-x86….zip», в описании которой указано «including the command-line shell», на текущий момент актуальная ссылка 
http://www.sqlite.org/2017/sqlite-tools-win32-x86-3200100.zip

Восстановление

  1. Закройте все работающие обработки Моби-С.
  2. Сделайте резервную копию файла mobi_s.sqlite3.
  3. Скопируйте испорченный файл mobi_s.sqlite3 в отдельный каталог, например C:\1, далее все операции выполняются в этом каталоге если не указано иное.
  4. В этот каталог необходимо распаковать файл sqlite3.exe из архива sqlite-tools-win32-x86….zip.
  5. В этот каталог скачайте 2 файла ИзвлечьДанныеИзБазы.bat и ПоместитьДанныеВБазу.bat.
  6. Выполните файл ИзвлечьДанныеИзБазы.bat, выполнение может занять продолжительное время, в результате будет сформирован файл mobi_s.sql.
  7. Текстовым редактором (желательно использовать Notepad++ или AkelPad, нежелательно – Блокнот) откройте файл mobi_s.sql.
  8. Если последняя строка в файле mobi_s.sql начинается с ROLLBACK, то замените всю строку на COMMIT; и сохраните файл.
  9. В этом каталоге переименуйте файл mobi_s.sqlite3 в mobi_s_исходный.sqlite3.
  10. Запустите файл ПоместитьДанныеВБазу. bat, выполнение может занять продолжительное время, могут выводится сообщения об ошибках –игнорируйте их, в результате будет сформирован файл mobi_s.sqlite3.
  11. Скопируйте полученный файл mobi_s.sqlite3 в основной каталог Моби-С с заменой существующего и проверьте работу с внешней базой из одной обработки – сообщения, фотографии, остатки в торговых точках. Если ошибок работы с внешней базой данных нет – запускайте остальные обработки.