From 3eebce22e72f28bf0a8d70c62390477c2c7d8bf4 Mon Sep 17 00:00:00 2001 From: zadam Date: Wed, 2 Oct 2019 23:22:58 +0200 Subject: [PATCH] fix incorrect import of relations from tar (cherry picked from commit 8d14a0d687f195ea24542f78091f3c1c5fd34974) --- db/demo.tar | Bin 537600 -> 535040 bytes src/services/import/tar.js | 64 ++++++++++++++++--------------------- src/services/notes.js | 2 +- src/services/sync_table.js | 8 ++++- 4 files changed, 36 insertions(+), 38 deletions(-) diff --git a/db/demo.tar b/db/demo.tar index c362321172f3073d84f560a2b645159fe7050029..48b750ba783ba9f039c3167b74f5d45ab20e8f24 100644 GIT binary patch delta 20767 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 S3E))@-;h$5Kd`Q#^nU?bD9dpG delta 21545 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 Y1j}%K5m^NAfpn%2sUQDRMbV=F1HzMMr~m)} diff --git a/src/services/import/tar.js b/src/services/import/tar.js index 7da144dfc..30ddc9d76 100644 --- a/src/services/import/tar.js +++ b/src/services/import/tar.js @@ -1,6 +1,5 @@ "use strict"; - const Attribute = require('../../entities/attribute'); const utils = require('../../services/utils'); const log = require('../../services/log'); @@ -114,28 +113,18 @@ async function importTar(importContext, fileBuffer, importRootNote) { } function getNoteId(noteMeta, filePath) { - let noteId; - const filePathNoExt = getTextFileWithoutExtension(filePath); - if (noteMeta) { - if (filePathNoExt in createdPaths) { - noteId = createdPaths[filePathNoExt]; - noteIdMap[noteMeta.noteId] = noteId; - } - else { - noteId = getNewNoteId(noteMeta.noteId); - } - } - else { - if (filePathNoExt in createdPaths) { - noteId = createdPaths[filePathNoExt]; - } - else { - noteId = utils.newEntityId(); - } + console.log(`Searching for noteId of filePath ${filePath} with meta: ${!!noteMeta}`); + + if (filePathNoExt in createdPaths) { + console.log("Found existing path", filePathNoExt, createdPaths[filePathNoExt]); + + return createdPaths[filePathNoExt]; } + const noteId = noteMeta ? getNewNoteId(noteMeta.noteId) : utils.newEntityId(); + createdPaths[filePathNoExt] = noteId; return noteId; @@ -234,7 +223,8 @@ async function importTar(importContext, fileBuffer, importRootNote) { absUrl += (absUrl.length > 0 ? '/' : '') + url; - const targetNoteId = getNoteId(null, absUrl); + const {noteMeta} = getMeta(absUrl); + const targetNoteId = getNoteId(noteMeta, absUrl); return targetNoteId; } @@ -340,22 +330,6 @@ async function importTar(importContext, fileBuffer, importRootNote) { await saveAttributes(note, noteMeta); - if (!noteMeta && (type === 'file' || type === 'image')) { - attributes.push({ - noteId, - type: 'label', - name: 'originalFileName', - value: path.basename(filePath) - }); - - attributes.push({ - noteId, - type: 'label', - name: 'fileSize', - value: content.byteLength - }); - } - if (!firstNote) { firstNote = note; } @@ -364,6 +338,22 @@ async function importTar(importContext, fileBuffer, importRootNote) { filePath = getTextFileWithoutExtension(filePath); } } + + if (!noteMeta && (type === 'file' || type === 'image')) { + attributes.push({ + noteId, + type: 'label', + name: 'originalFileName', + value: path.basename(filePath) + }); + + attributes.push({ + noteId, + type: 'label', + name: 'fileSize', + value: content.byteLength + }); + } } /** @return {string} path without leading or trailing slash and backslashes converted to forward ones*/ @@ -426,7 +416,9 @@ async function importTar(importContext, fileBuffer, importRootNote) { const noteId = createdPaths[path]; createdNoteIds[noteId] = true; + } + for (const noteId in createdNoteIds) { // now the noteIds are unique await noteService.scanForLinks(noteId); importContext.increaseProgressCount(); diff --git a/src/services/notes.js b/src/services/notes.js index 87c988ad2..853827f42 100644 --- a/src/services/notes.js +++ b/src/services/notes.js @@ -248,7 +248,7 @@ function findRelationMapLinks(content, foundLinks) { foundLinks.push({ name: 'relation-map-link', value: note.noteId - }) + }); } } diff --git a/src/services/sync_table.js b/src/services/sync_table.js index 03b0356d5..b293acabb 100644 --- a/src/services/sync_table.js +++ b/src/services/sync_table.js @@ -64,12 +64,14 @@ async function fillSyncRows(entityName, entityKey, condition = '') { const entityIds = await sql.getColumn(`SELECT ${entityKey} FROM ${entityName}` + (condition ? ` WHERE ${condition}` : '')); + let createdCount = 0; + for (const entityId of entityIds) { const existingRows = await sql.getValue("SELECT COUNT(id) FROM sync WHERE entityName = ? AND entityId = ?", [entityName, entityId]); // we don't want to replace existing entities (which would effectively cause full resync) if (existingRows === 0) { - log.info(`Creating missing sync record for ${entityName} ${entityId}`); + createdCount++; await sql.insert("sync", { entityName: entityName, @@ -79,6 +81,10 @@ async function fillSyncRows(entityName, entityKey, condition = '') { }); } } + + if (createdCount > 0) { + log.info(`Created ${createdCount} missing sync records for ${entityName}.`); + } } catch (e) { // this is to fix migration from 0.30 to 0.32, can be removed later