2007-06-13 Don Allingham <don@gramps-project.org>
* src/DbManager.py: handle broken dbs that have been opened * src/DbState.py: handle broken dbs that have been opened * src/GrampsDbUtils/_Backup.py: write intermediate file firs to make sure no errors occur when writing, then replace old backups * src/ViewManager.py: better rebuild recovery * src/GrampsDb/_GrampsDbConst.py: better rebuild recovery * src/GrampsDb/_GrampsDBCallback.py: better rebuild recovery * src/DbManager.py: better rebuild recovery * src/glade/gramps.glade: better rebuild recovery * src/const.py.in: better rebuild recovery * src/QuestionDialog.py: better rebuild recovery * src/GrampsDbUtils/_ReadGedcom.py: better rebuild recovery * src/ArgHandler.py: better rebuild recovery * src/DbLoader.py: better rebuild recovery 2007-06-12 Don Allingham <don@gramps-project.org> svn: r8546
This commit is contained in:
@@ -72,17 +72,26 @@ def __do_export(database):
|
||||
@param database: database instance to backup
|
||||
@type database: GrampsDbDir
|
||||
"""
|
||||
for (base, tbl) in __build_tbl_map(database):
|
||||
backup_name = os.path.join(database.get_save_path(), base + ".gbkp")
|
||||
backup_table = open(backup_name, 'wb')
|
||||
try:
|
||||
for (base, tbl) in __build_tbl_map(database):
|
||||
backup_name = os.path.join(database.get_save_path(), base + ".gbkp.new")
|
||||
backup_table = open(backup_name, 'wb')
|
||||
|
||||
cursor = tbl.cursor()
|
||||
data = cursor.first()
|
||||
while data:
|
||||
pickle.dump(data, backup_table, 2)
|
||||
data = cursor.next()
|
||||
cursor.close()
|
||||
backup_table.close()
|
||||
cursor = tbl.cursor()
|
||||
data = cursor.first()
|
||||
while data:
|
||||
pickle.dump(data, backup_table, 2)
|
||||
data = cursor.next()
|
||||
cursor.close()
|
||||
backup_table.close()
|
||||
except (IOError,OSError):
|
||||
return
|
||||
|
||||
for (base, tbl) in __build_tbl_map(database):
|
||||
new_name = os.path.join(database.get_save_path(), base + ".gbkp")
|
||||
old_name = new_name + ".new"
|
||||
os.unlink(new_name)
|
||||
os.rename(old_name, new_name)
|
||||
|
||||
def restore(database):
|
||||
"""
|
||||
|
Reference in New Issue
Block a user