accountsdb: write DB to a temporary file first

This commit is contained in:
James Lu 2019-03-09 11:15:34 -08:00
parent f3bfd9ff73
commit e46915b58d
3 changed files with 9 additions and 3 deletions

View File

@ -86,9 +86,11 @@ class AccountsDB():
def flush(self):
"""Exports the database to a file."""
tmp_filename = self.filename + '.tmp'
try:
with open(self.filename, 'wb') as f:
with open(tmp_filename, 'wb') as f:
pickle.dump(self.db, f, 2)
os.rename(tmp_filename, self.filename)
except Exception as e:
log.warning('%s: Unable to write database: %s', self._plugin_name, e)

View File

@ -86,9 +86,11 @@ class AccountsDB():
def flush(self):
"""Exports the database to a file."""
tmp_filename = self.filename + '.tmp'
try:
with open(self.filename, 'wb') as f:
with open(tmp_filename, 'wb') as f:
pickle.dump(self.db, f, 2)
os.rename(tmp_filename, self.filename)
except Exception as e:
log.warning('%s: Unable to write database: %s', self._plugin_name, e)

View File

@ -85,9 +85,11 @@ class AccountsDB():
def flush(self):
"""Exports the database to a file."""
tmp_filename = self.filename + '.tmp'
try:
with open(self.filename, 'wb') as f:
with open(tmp_filename, 'wb') as f:
pickle.dump(self.db, f, 2)
os.rename(tmp_filename, self.filename)
except Exception as e:
log.warning('%s: Unable to write database: %s', self._plugin_name, e)