9385: gramps -L changes Last Accessed time/date

This commit is contained in:
Doug Blank 2016-04-16 03:40:52 -04:00
parent 516bba4180
commit ac1ccfa2b4
3 changed files with 74 additions and 56 deletions

View File

@ -158,9 +158,9 @@ class CLIDbManager(object):
if not self.is_locked(dirpath):
try:
database = self.dbstate.make_database(dbid)
database.load(dirpath, None)
database.load(dirpath, None, update=False)
retval = database.get_summary()
database.close()
database.close(update=False)
except Exception as msg:
retval = {_("Unavailable"): str(msg)[:74] + "..."}
else:

View File

@ -739,7 +739,11 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
force_schema_upgrade=False,
force_bsddb_upgrade=False,
force_bsddb_downgrade=False,
force_python_upgrade=False):
force_python_upgrade=False,
update=True):
"""
If update is False: then don't update any files
"""
# run backend-specific code:
self.initialize_backend(directory)
@ -1688,11 +1692,16 @@ class DbGeneric(DbWriteBase, DbReadBase, UpdateCallback, Callback):
return False
return True
def close(self):
def close(self, update=True):
"""
Close the database.
if update is False, don't change access times, etc.
"""
if self._directory:
# This is just a dummy file to indicate last modified time of the
# database for gramps.cli.clidbman:
filename = os.path.join(self._directory, "meta_data.db")
if update:
touch(filename)
# Save metadata
self.set_metadata('name_formats', self.name_formats)

View File

@ -701,12 +701,17 @@ class DbBsddb(DbBsddbRead, DbWriteBase, UpdateCallback):
@catch_db_error
def load(self, name, callback=None, mode=DBMODE_W, force_schema_upgrade=False,
force_bsddb_upgrade=False, force_bsddb_downgrade=False,
force_python_upgrade=False):
force_python_upgrade=False, update=True):
"""
If update is False: then don't update any files; open read-only
"""
if self.__check_readonly(name):
mode = DBMODE_R
else:
elif update:
write_lock_file(name)
else:
mode = DBMODE_R
if self.db_is_open:
self.close()
@ -1483,7 +1488,11 @@ class DbBsddb(DbBsddbRead, DbWriteBase, UpdateCallback):
self.db_is_open = False
@catch_db_error
def close(self):
def close(self, update=True):
"""
Close the database.
if update is False, don't change access times, etc.
"""
if not self.db_is_open:
return
if self.txn: