MCPcopy Create free account
hub / github.com/pyfa-org/Pyfa / OrphanedFitDamagePatterns

Method OrphanedFitDamagePatterns

eos/db/saveddata/databaseRepair.py:59–91  ·  view source on GitHub ↗
(saveddata_engine)

Source from the content-addressed store, hash-verified

57
58 @staticmethod
59 def OrphanedFitDamagePatterns(saveddata_engine):
60 # Find orphaned damage patterns.
61 # This solves an issue where the damage pattern doesn't exist, but fits reference the pattern.
62 # See issue #777
63 pyfalog.debug("Running database cleanup for orphaned damage patterns attached to fits.")
64 query = "SELECT COUNT(*) AS num FROM fits WHERE damagePatternID NOT IN (SELECT ID FROM damagePatterns) OR damagePatternID IS NULL"
65 results = DatabaseCleanup.ExecuteSQLQuery(saveddata_engine, query)
66
67 if results is None:
68 return
69
70 row = results.first()
71
72 if row and row['num']:
73 # Get Uniform damage pattern ID
74 uniform_query = "SELECT ID FROM damagePatterns WHERE name = 'Uniform'"
75 uniform_results = DatabaseCleanup.ExecuteSQLQuery(saveddata_engine, uniform_query)
76
77 if uniform_results is None:
78 return
79
80 rows = uniform_results.fetchall()
81
82 if len(rows) == 0:
83 pyfalog.error("Missing uniform damage pattern.")
84 elif len(rows) > 1:
85 pyfalog.error("More than one uniform damage pattern found.")
86 else:
87 uniform_damage_pattern_id = rows[0]['ID']
88 update_query = "UPDATE 'fits' SET 'damagePatternID' = {} " \
89 "WHERE damagePatternID NOT IN (SELECT ID FROM damagePatterns) OR damagePatternID IS NULL".format(uniform_damage_pattern_id)
90 update_results = DatabaseCleanup.ExecuteSQLQuery(saveddata_engine, update_query)
91 pyfalog.error("Database corruption found. Cleaning up {0} records.", update_results.rowcount)
92
93 @staticmethod
94 def OrphanedFitCharacterIDs(saveddata_engine):

Callers 1

prefetch.pyFile · 0.80

Calls 1

ExecuteSQLQueryMethod · 0.80

Tested by

no test coverage detected