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) {
|
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
|
// There should be an equivalent SELECT COUNT(*) statement for every
|
||||||
// statement run by the DB Repair Tool
|
// statement run by the DB Repair Tool
|
||||||
var queries = [
|
var queries = [
|
||||||
|
@ -1243,8 +1250,8 @@ Zotero.Schema = new function(){
|
||||||
"DELETE FROM itemCreators WHERE creatorID NOT IN (SELECT creatorID FROM creators)",
|
"DELETE FROM itemCreators WHERE creatorID NOT IN (SELECT creatorID FROM creators)",
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"SELECT COUNT(*) 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 fields)",
|
"DELETE FROM itemData WHERE fieldID NOT IN (SELECT fieldID FROM fieldsCombined)",
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
"SELECT COUNT(*) FROM itemData WHERE valueID NOT IN (SELECT valueID FROM itemDataValues)",
|
"SELECT COUNT(*) FROM itemData WHERE valueID NOT IN (SELECT valueID FROM itemDataValues)",
|
||||||
|
@ -1259,8 +1266,8 @@ Zotero.Schema = new function(){
|
||||||
],
|
],
|
||||||
// Fields not in type
|
// 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))",
|
"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 itemTypeFields 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
|
// Missing itemAttachments row
|
||||||
[
|
[
|
||||||
|
|
Loading…
Reference in New Issue
Block a user