DB-API: only backup when changes; fixed has_changed

This commit is contained in:
Doug Blank 2015-05-30 08:19:13 -04:00
parent 5b2bc78108
commit 0b2ad1df35

View File

@ -577,7 +577,7 @@ class DBAPI(DbWriteBase, DbReadBase, UpdateCallback, Callback):
self.transaction = None self.transaction = None
self.abort_possible = False self.abort_possible = False
self._bm_changes = 0 self._bm_changes = 0
self._has_changed = False self.has_changed = False
self.genderStats = GenderStats() # can pass in loaded stats as dict self.genderStats = GenderStats() # can pass in loaded stats as dict
self.owner = Researcher() self.owner = Researcher()
if directory: if directory:
@ -1456,7 +1456,7 @@ class DBAPI(DbWriteBase, DbReadBase, UpdateCallback, Callback):
# Emit after added: # Emit after added:
if emit: if emit:
self.emit(emit, ([person.handle],)) self.emit(emit, ([person.handle],))
self._has_changed = True self.has_changed = True
def add_to_surname_list(self, person, batch_transaction): def add_to_surname_list(self, person, batch_transaction):
""" """
@ -1546,7 +1546,7 @@ class DBAPI(DbWriteBase, DbReadBase, UpdateCallback, Callback):
# Emit after added: # Emit after added:
if emit: if emit:
self.emit(emit, ([family.handle],)) self.emit(emit, ([family.handle],))
self._has_changed = True self.has_changed = True
def commit_citation(self, citation, trans, change_time=None): def commit_citation(self, citation, trans, change_time=None):
emit = None emit = None
@ -1585,7 +1585,7 @@ class DBAPI(DbWriteBase, DbReadBase, UpdateCallback, Callback):
# Emit after added: # Emit after added:
if emit: if emit:
self.emit(emit, ([citation.handle],)) self.emit(emit, ([citation.handle],))
self._has_changed = True self.has_changed = True
def commit_source(self, source, trans, change_time=None): def commit_source(self, source, trans, change_time=None):
emit = None emit = None
@ -1626,7 +1626,7 @@ class DBAPI(DbWriteBase, DbReadBase, UpdateCallback, Callback):
# Emit after added: # Emit after added:
if emit: if emit:
self.emit(emit, ([source.handle],)) self.emit(emit, ([source.handle],))
self._has_changed = True self.has_changed = True
def commit_repository(self, repository, trans, change_time=None): def commit_repository(self, repository, trans, change_time=None):
emit = None emit = None
@ -1655,7 +1655,7 @@ class DBAPI(DbWriteBase, DbReadBase, UpdateCallback, Callback):
# Emit after added: # Emit after added:
if emit: if emit:
self.emit(emit, ([repository.handle],)) self.emit(emit, ([repository.handle],))
self._has_changed = True self.has_changed = True
def commit_note(self, note, trans, change_time=None): def commit_note(self, note, trans, change_time=None):
emit = None emit = None
@ -1681,7 +1681,7 @@ class DBAPI(DbWriteBase, DbReadBase, UpdateCallback, Callback):
# Emit after added: # Emit after added:
if emit: if emit:
self.emit(emit, ([note.handle],)) self.emit(emit, ([note.handle],))
self._has_changed = True self.has_changed = True
def commit_place(self, place, trans, change_time=None): def commit_place(self, place, trans, change_time=None):
emit = None emit = None
@ -1721,7 +1721,7 @@ class DBAPI(DbWriteBase, DbReadBase, UpdateCallback, Callback):
# Emit after added: # Emit after added:
if emit: if emit:
self.emit(emit, ([place.handle],)) self.emit(emit, ([place.handle],))
self._has_changed = True self.has_changed = True
def commit_event(self, event, trans, change_time=None): def commit_event(self, event, trans, change_time=None):
emit = None emit = None
@ -1757,7 +1757,7 @@ class DBAPI(DbWriteBase, DbReadBase, UpdateCallback, Callback):
# Emit after added: # Emit after added:
if emit: if emit:
self.emit(emit, ([event.handle],)) self.emit(emit, ([event.handle],))
self._has_changed = True self.has_changed = True
def update_backlinks(self, obj): def update_backlinks(self, obj):
# First, delete the current references: # First, delete the current references:
@ -2036,11 +2036,6 @@ class DBAPI(DbWriteBase, DbReadBase, UpdateCallback, Callback):
def close(self): def close(self):
if self._directory: if self._directory:
from gramps.plugins.export.exportxml import XmlWriter
from gramps.cli.user import User
writer = XmlWriter(self, User(), strip_photos=0, compress=1)
filename = os.path.join(self._directory, "data.gramps")
writer.write(filename)
filename = os.path.join(self._directory, "meta_data.db") filename = os.path.join(self._directory, "meta_data.db")
touch(filename) touch(filename)
# Save metadata # Save metadata
@ -2276,9 +2271,6 @@ class DBAPI(DbWriteBase, DbReadBase, UpdateCallback, Callback):
def get_source_bookmarks(self): def get_source_bookmarks(self):
return self.source_bookmarks return self.source_bookmarks
def has_changed(self):
return self._has_changed
def is_open(self): def is_open(self):
return self._directory is not None return self._directory is not None
@ -2492,9 +2484,9 @@ class DBAPI(DbWriteBase, DbReadBase, UpdateCallback, Callback):
self.path = self.full_name self.path = self.full_name
self.brief_name = os.path.basename(self._directory) self.brief_name = os.path.basename(self._directory)
else: else:
self.full_name = "" self.full_name = None
self.path = "" self.path = None
self.brief_name = "" self.brief_name = None
def write_version(self, directory): def write_version(self, directory):
"""Write files for a newly created DB.""" """Write files for a newly created DB."""
@ -2834,7 +2826,11 @@ class DBAPI(DbWriteBase, DbReadBase, UpdateCallback, Callback):
""" """
If you wish to support an optional backup routine, put it here. If you wish to support an optional backup routine, put it here.
""" """
pass from gramps.plugins.export.exportxml import XmlWriter
from gramps.cli.user import User
writer = XmlWriter(self, User(), strip_photos=0, compress=1)
filename = os.path.join(self._directory, "data.gramps")
writer.write(filename)
def restore(self): def restore(self):
""" """