Don't wipe out fields from fieldsCombined during DB integrity check
This commit is contained in:
parent
c1c2f6b9de
commit
1f3cd9a1ae
|
@ -1157,6 +1157,13 @@ Zotero.Schema = new function(){
|
|||
|
||||
|
||||
this.integrityCheck = function (fix) {
|
||||
// Just as a sanity check, make sure combined field tables are populated,
|
||||
// so that we don't try to wipe out all data
|
||||
if (!Zotero.DB.valueQuery("SELECT COUNT(*) FROM fieldsCombined")
|
||||
|| !Zotero.DB.valueQuery("SELECT COUNT(*) FROM itemTypeFieldsCombined")) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// There should be an equivalent SELECT COUNT(*) statement for every
|
||||
// statement run by the DB Repair Tool
|
||||
var queries = [
|
||||
|
@ -1243,8 +1250,8 @@ Zotero.Schema = new function(){
|
|||
"DELETE FROM itemCreators WHERE creatorID NOT IN (SELECT creatorID FROM creators)",
|
||||
],
|
||||
[
|
||||
"SELECT COUNT(*) FROM itemData WHERE fieldID NOT IN (SELECT fieldID FROM fields)",
|
||||
"DELETE FROM itemData WHERE fieldID NOT IN (SELECT fieldID FROM fields)",
|
||||
"SELECT COUNT(*) FROM itemData WHERE fieldID NOT IN (SELECT fieldID FROM fieldsCombined)",
|
||||
"DELETE FROM itemData WHERE fieldID NOT IN (SELECT fieldID FROM fieldsCombined)",
|
||||
],
|
||||
[
|
||||
"SELECT COUNT(*) FROM itemData WHERE valueID NOT IN (SELECT valueID FROM itemDataValues)",
|
||||
|
@ -1259,8 +1266,8 @@ Zotero.Schema = new function(){
|
|||
],
|
||||
// Fields not in type
|
||||
[
|
||||
"SELECT COUNT(*) FROM itemData WHERE fieldID NOT IN (SELECT fieldID FROM itemTypeFields WHERE itemTypeID=(SELECT itemTypeID FROM items WHERE itemID=itemData.itemID))",
|
||||
"DELETE FROM itemData WHERE fieldID NOT IN (SELECT fieldID FROM itemTypeFields WHERE itemTypeID=(SELECT itemTypeID FROM items WHERE itemID=itemData.itemID))",
|
||||
"SELECT COUNT(*) FROM itemData WHERE fieldID NOT IN (SELECT fieldID FROM itemTypeFieldsCombined WHERE itemTypeID=(SELECT itemTypeID FROM items WHERE itemID=itemData.itemID))",
|
||||
"DELETE FROM itemData WHERE fieldID NOT IN (SELECT fieldID FROM itemTypeFieldsCombined WHERE itemTypeID=(SELECT itemTypeID FROM items WHERE itemID=itemData.itemID))",
|
||||
],
|
||||
// Missing itemAttachments row
|
||||
[
|
||||
|
|
Loading…
Reference in New Issue
Block a user