Fix Rebuild Secondary Indexes tool for dbapi backends
For dbapi backends, this tool will update the secondary columns that are used for indexing. Resolves #10757.
This commit is contained in:
parent
b4b7911405
commit
8fc03f85a1
@ -813,15 +813,33 @@ class DBAPI(DbGeneric):
|
|||||||
ref_class_name])
|
ref_class_name])
|
||||||
callback(5)
|
callback(5)
|
||||||
|
|
||||||
def rebuild_secondary(self, update):
|
def rebuild_secondary(self, callback=None):
|
||||||
"""
|
"""
|
||||||
Rebuild secondary indices
|
Rebuild secondary indices
|
||||||
"""
|
"""
|
||||||
|
if self.readonly:
|
||||||
|
return
|
||||||
|
|
||||||
# First, expand blob to individual fields:
|
# First, expand blob to individual fields:
|
||||||
self._update_secondary_values()
|
self._txn_begin()
|
||||||
|
index = 1
|
||||||
|
for obj_type in ('Person', 'Family', 'Event', 'Place', 'Repository',
|
||||||
|
'Source', 'Citation', 'Media', 'Note', 'Tag'):
|
||||||
|
for handle in self.method('get_%s_handles', obj_type)():
|
||||||
|
obj = self.method('get_%s_from_handle', obj_type)(handle)
|
||||||
|
self._update_secondary_values(obj)
|
||||||
|
if callback:
|
||||||
|
callback(index)
|
||||||
|
index += 1
|
||||||
|
self._txn_commit()
|
||||||
|
if callback:
|
||||||
|
callback(11)
|
||||||
|
|
||||||
# Next, rebuild stats:
|
# Next, rebuild stats:
|
||||||
gstats = self.get_gender_stats()
|
gstats = self.get_gender_stats()
|
||||||
self.genderStats = GenderStats(gstats)
|
self.genderStats = GenderStats(gstats)
|
||||||
|
if callback:
|
||||||
|
callback(12)
|
||||||
|
|
||||||
def _has_handle(self, obj_key, handle):
|
def _has_handle(self, obj_key, handle):
|
||||||
table = KEY_TO_NAME_MAP[obj_key]
|
table = KEY_TO_NAME_MAP[obj_key]
|
||||||
|
@ -92,6 +92,7 @@ class Rebuild(tool.Tool, UpdateCallback):
|
|||||||
print("All secondary indexes have been rebuilt.")
|
print("All secondary indexes have been rebuilt.")
|
||||||
|
|
||||||
self.db.enable_signals()
|
self.db.enable_signals()
|
||||||
|
self.db.request_rebuild()
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
|
Loading…
Reference in New Issue
Block a user