очистка СВН: базы данных SQLite: диск базы данных изображений искаженной
Я пытался сделать svn cleanup
потому что я не могу сохранить изменения в моей рабочей копии, и я получаю следующую ошибку:
sqllite: образ диска базы данных искажен
что я могу сделать прямо сейчас?
15 ответов:
у меня была та же проблема. Следующее сообщение в блоге помогло мне решить эту проблему: http://www.polak.ro/svn-e200030-sqlite-database-disk-image-is-malformed.html
вы выполняете проверку целостности базы данных sqlite, которая отслеживает репозиторий (/.СВН/туалет.db):
sqlite3 .svn/wc.db "pragma integrity_check"
Это должно сообщить о некоторых ошибках.
тогда вы могли бы быть в состоянии очистить их, сделав:
sqlite3 .svn/wc.db "reindex nodes" sqlite3 .svn/wc.db "reindex pristine"
Если есть еще ошибки после этого, вы все еще получили возможность извлечь свежую копию репозитория во временную папку и скопировать ее .папка svn из новой копии в старую. Затем старая копия должна работать снова, и вы можете удалить временную папку.
проверка целостности
sqlite3 .svn/wc.db "pragma integrity_check"
очистить
sqlite3 .svn/wc.db "reindex nodes" sqlite3 .svn/wc.db "reindex pristine"
как вариант
вы можете сбросить содержимое базы данных, которое можно прочитать в файл резервной копии, а затем проглотить его обратно в новый файл базы данных:
sqlite3 .svn/wc.db sqlite> .mode insert sqlite> .output dump_all.sql sqlite> .dump sqlite> .exit mv .svn/wc.db .svn/wc-corrupt.db sqlite3 .svn/wc.db sqlite> .read dump_all.sql sqlite> .exit
очистка SVN не работала. Папка SVN в моей локальной системе была повреждена. Поэтому я просто удалил папку, воссоздал новую и обновил ее из SVN. Это решило проблему!
после отключения электроэнергии, я побежал в образ диска базы данных искажен ошибка и предложенная команда reindex nodes не исправили все проблемы из-за нарушенных ограничений. Также процедура описана в http://mail-archives.apache.org/mod_mbox/subversion-users/201111.mbox/%3C874nybhpxi.fsf@stat.home.lan%3E не удалось решить проблему.
решение в моем случае:
- Проверьте репозиторий svn снова во временный папка
- "копировать", т. е. заменить файл ".СВН/туалет.db " от новой проверки до коррумпированной
Это может быть полезно, если ваш оригинальный svn checkout содержит много измененных или неверсионных файлов, и вы не хотите переключаться на новый svn checkout.
видели этот пост на сайте subversion? Вы также можете попробовать проверить и" исправить " базу данных напрямую, как описано здесь. (Обратите внимание, что я не эксперт, я просто сделал быстрый поиск google. Может быть не связано с вашими проблемами вообще).
лично я бы попробовал снова проверить РЕПО и повторно применить ваши изменения. Не уверен, что это возможно, хотя в вашем случае?
в ходе моих исследований я нашел 2 жизнеспособных решения.
Если вы используете любой тип соединений, ssh, samba, монтаж, отключение / размонтирование и повторное подключение/повторное подключение. Попробуйте еще раз, это часто решало проблему для меня. После этого вы можете сделать очистку svn или просто продолжать работать нормально (в зависимости от того, когда возникла проблема). Перезагрузка компьютера также исправила проблему один раз... да это глупо я знаю!
несколько раз все есть для этого нужно rm-rf ваши файлы (или если вы не знакомы с этим термином, просто удалите свою папку svn) и еще раз проверьте свой репозиторий svn. Обратите внимание, что это не всегда решает проблему, и у вас также могут быть изменения, которые вы не хотите потерять. Поэтому я использую его как второй вариант.
надеюсь, это поможет вам, ребята!
я решил свою проблему visual svn server rep-cache.повреждение БД.
их два решения.
остановите службу сервера Visual SVN.
скачать sqllite3.exe shell с сайта sqllite и скопируйте его в папку DB РЕПО.
введите следующие команды в командной строке в папке РЕПО дБ.
-- Первый Вариант --
sqlite3 rep-cache.db .clone rep-cache-new.db
нажмите ctrl+c, чтобы выйти из sqllite.
ren rep-cache.db rep-cache-old.db ren re-cache-new.db rep-cache.db
-- 2-й Решение --
удалить rep-кэш.db
del rep-cache.db
он будет создан автоматически.
- проверьте этот svn в другом месте
- показать скрытые .svn file
- заменить wc файл
это работает для меня!
я исправил это для экземпляра это происходит со мной, удалив скрытые .папка svn, а затем выполнение проверки в папке с тем же URL-адресом.
Это не перезапишет мои измененные файлы и просто версионный все существующие файлы вместо того, чтобы схватить свежего копий с сервера.
Если вы устанавливаете Tortoise SVN, перейдите в Диспетчер задач и остановите его. Затем попробуйте удалить папку. это будет работать
не нужно беспокоиться о блокировке каталога ребята.
просто вам нужно сделать, это, Если sqllite3 не установлен, введите команду ниже,
>sudo apt-get install sqlite3
откройте базу данных SVN, введя эту команду,
>sqlite3 .svn/wc.db
Теперь просто вам нужно сделать, это удалить записи блокировки из SVN DB.
sqlite> select * from wc_lock; 1|-1 sqlite> delete from wc_lock; sqlite> select * from wc_lock; sqlite> .q
Процесс Завершен. Вы можете работать с вашим репозиторием SVN, совершать, обновлять, добавлять, удалять операции без проблем.
: -)
во время разработки приложения я обнаружил, что сообщения приходят от частых и массовых операций вставки и обновления. Убедитесь, что вы вставили и обновили несколько строк или данных за одну операцию.
var updateStatementString : String! = "" for item in cardids { let newstring = "UPDATE "+TABLE_NAME+" SET pendingImages = '\(pendingImage)\' WHERE cardId = '\(item)\';" updateStatementString.append(newstring) } print(updateStatementString) let results = dbManager.sharedInstance.update(updateStatementString: updateStatementString) return Int64(results)