catch duplicate selected ammo

This commit is contained in:
Ebag333
2017-01-27 13:46:20 -08:00
parent e6b4ecdaf7
commit fc99d6f0a6
2 changed files with 19 additions and 0 deletions

View File

@@ -199,3 +199,21 @@ class DatabaseCleanup:
query = "UPDATE '" + profileType + "' SET '" + damageType + "Amount' = '0' WHERE " + damageType + "Amount IS NULL OR emAmount = ''"
delete = DatabaseCleanup.ExecuteSQLQuery(saveddata_engine, query)
logger.error("Database corruption found. Cleaning up %d records.", delete.rowcount)
@staticmethod
def DuplicateSelectedAmmoName(saveddata_engine):
# Orphaned items that are missing the fit ID or item ID.
# See issue #954
logger.debug("Running database cleanup for duplicated selected ammo profiles.")
query = "SELECT COUNT(*) AS num FROM damagePatterns WHERE name = 'Selected Ammo'"
results = DatabaseCleanup.ExecuteSQLQuery(saveddata_engine, query)
if results is None:
return
row = results.first()
if row and row['num'] > 1:
query = "DELETE FROM damagePatterns WHERE name = 'Selected Ammo'"
delete = DatabaseCleanup.ExecuteSQLQuery(saveddata_engine, query)
logger.error("Database corruption found. Cleaning up %d records.", delete.rowcount)

View File

@@ -69,6 +69,7 @@ if os.path.isfile(config.saveDB):
database_cleanup_instance.OrphanedFitDamagePatterns(eos.db.saveddata_engine)
database_cleanup_instance.OrphanedFitIDItemID(eos.db.saveddata_engine)
database_cleanup_instance.NullDamageTargetPatternValues(eos.db.saveddata_engine)
database_cleanup_instance.DuplicateSelectedAmmoName(eos.db.saveddata_engine)
logging.debug("Completed database validation.")
else: