2012-06-06 9 views
0

У меня есть база данных sqlite3, которую я создал из Python (2.7) на локальной машине, и пытаюсь скопировать ее в удаленное местоположение. Я создал «sqlite3 posts.db .backup posts.db.bak» для создания копии (я могу использовать оригинал и эту новую копию просто отлично). Но когда я перемещаю скопированный файл в удаленное местоположение, вдруг каждая команда дает мне: sqlite3.OperationalError: database is locked. Как безопасно перемещать базу данных sqlite3, чтобы я мог использовать ее после перемещения?Как безопасно перемещать базу данных SQLite3?

+1

У вас есть разрешение на запись в файл SQLite после его перемещения? Если я правильно помню, эта ошибка может появиться и в случае, если у вас нет прав на запись. – mpontes

+0

Да, я ... к сожалению, это не проблема. –

+1

Вы переместили копию базы данных в сетевую файловую систему? Для чего-то другого, кроме чистых архивных целей, это плохая идея (блокировка классно проблематична для нелокальных ФС). –

ответ

0

Вы сделали .backup в исходной системе, но не упомянули, что вы делаете .restore в целевой системе. Просьба уточнить.

Вы не указали, какие версии исполняемого файла sqlite3 у вас есть на исходной и целевой системах.

Вы не упомянули, как вы передали файл .bak от источника к цели.

Был ли доступ к источнику db другим процессом, когда вы сделали .backup?

Насколько велик файл? Вы рассматривали zip/copy/unzip вместо резервного копирования/копирования/восстановления?

Смежные вопросы