Runa
Администратор
В проекте пользователя несколько объектов стали отображать пустое содержимое: 0 записей из 0. При этом размер файла базы данных rdb не изменился. Также перестала выполняться оптимизация базы.
При открытии соответствующей таблицы объекта сторонним редактором SQLite выдаёт ошибку Database disk image is malformed.
Причины: чаще всего эта внутренняя ошибка базы данных возникает при «падении» системы или выключении компьютера в то время, когда шла работа с файлом базы данных.
Решение: сделать дамп файла RunaX_X.rdb, и создать новую базу из дампа.
Действия:
1. Сделать резервную копию базы данных.
2. Переименовать RunaX_X.rdb в runa.db
3. В зависимости от операционной системы:
- Windows: скачать sqlite3 command line http://www.sqlite.org/download.html (в разделе Precompiled Binaries for Windows)
- Linux: выполнить
4. Скопировать sqlite3.exe в папку с копией базы. Затем запустить командную строку (Пуск > Выполнить > cmd).
Примечание: синтаксис важен, именно runa.db[пробел].dump !!!
Подождать, пока операция отработает. В папке появится файл dump.sql
5. Открыть файл dump.sql в текстовом редакторе (например Notepad++). Если дамп сделан корректно, то в конце файла будет стоять команда:
Необходимо удалить эту последнюю строку в файле и вместо неё написать:
(можно и вовсе отказаться от транзакции, но тогда будет очень долгий импорт данных в новую базу)
6. Создать новую, чистую базу из файла dump.sql (строгое соответствие установленным пробелам):
7. Переименовать runa2.db в RunaX_X.rdb и проверить как восстановились данные.
При открытии соответствующей таблицы объекта сторонним редактором SQLite выдаёт ошибку Database disk image is malformed.
Причины: чаще всего эта внутренняя ошибка базы данных возникает при «падении» системы или выключении компьютера в то время, когда шла работа с файлом базы данных.
Решение: сделать дамп файла RunaX_X.rdb, и создать новую базу из дампа.
Действия:
1. Сделать резервную копию базы данных.
2. Переименовать RunaX_X.rdb в runa.db
3. В зависимости от операционной системы:
- Windows: скачать sqlite3 command line http://www.sqlite.org/download.html (в разделе Precompiled Binaries for Windows)
- Linux: выполнить
apt-get install sqlite3
, либо скачать по ссылке выше, раздел Precompiled Binaries for Linux4. Скопировать sqlite3.exe в папку с копией базы. Затем запустить командную строку (Пуск > Выполнить > cmd).
Код:
cd \путь-к-папке-с-базой\sqlite3.exe
sqlite3 runa.db .dump>>dump.sql
Подождать, пока операция отработает. В папке появится файл dump.sql
5. Открыть файл dump.sql в текстовом редакторе (например Notepad++). Если дамп сделан корректно, то в конце файла будет стоять команда:
ROLLBACK;
Необходимо удалить эту последнюю строку в файле и вместо неё написать:
COMMIT;
(можно и вовсе отказаться от транзакции, но тогда будет очень долгий импорт данных в новую базу)
6. Создать новую, чистую базу из файла dump.sql (строгое соответствие установленным пробелам):
sqlite3 runa2.db <dump.sql
7. Переименовать runa2.db в RunaX_X.rdb и проверить как восстановились данные.
Последнее редактирование модератором: