Lost all connections of my notes

hi, today i had to restore some notebooks because of a mistake i made.
Happily i had made a backup with simple backup from Jack Gruber.
But, unfortunately (ohhh no), all connections where gone after i restored these notebooks.
I work with the zettelkasten concept, so i have lots of connections.
That means i have to manually connect hundreds of notes to each other again.
My question:
is there another way to restore these connections? and if not, is there a way to backup all connections too?

  • i am using Joplinversion: 2.7.14 for Linux
  • i am syncing with Joplin server on docker on my synology DS 216 +II
  • My operating system: Ubuntu 20.04.4 LTS
  • i am using simple backup from Jack Gruber version: 1.0.5

Thanks a lot.
Wyl

What exactly do you mean by connections? Can you give an example of what your markdown should look like (make sure you put it in a code block) vs what you currently see?

I mean: the shared markdown links between the notes.

^^

Not trying to be facetious but we can't really help unless we can see what has actually happened. Things can "work" even if they were in an incorrect format before. Or it could be that something has actually broken the references.

here are two markdown links:
[the universe is in us](:/c859b47993604ea8861700dfdaeff728)
[the universe is in us](:/d570cdf81e1447d39bb7d4e753613e29)
the first does'nt work anymore, so i copied a new one (the second one), which does work (link to another note called: the universe is in us.

in that way i have a couple of hundred markdownlinks, that doesn't work anymore.
All connections have lost while restoring a few notebooks.

What did you actually do when you restored the notebooks?
Did you import the jex file(s) into your existing Joplin instance (with the orignals still in place) or did you delete the originals then import?

Also if we use that example link you provided, does that link exist in:

  1. a restored notebook linking to a note in an existing notebook
  2. an existing notebook linking to a note in a restored notebook
  3. a restored notebook linking to a note in an restored notebook

The reason I'm asking is because that id is a unique ID that belongs to that note specifically.
So for example if I export "NotebookA" as a JEX file then inside that archive are a bunch of files and one of them will be called c859b47993604ea8861700dfdaeff728.md

I'm wondering if it wasn't able to create an entry for its original ID when you imported the file or something

2 Likes

I did delete the originals then import.
I think that is the cause of these lost references.
4. that link exists in a restored notebook linking to a note also in a restored notebook.

Yeah that was me being an idiot, that is the one I meant for 3 :slight_smile:

I guess you had the individual jex backup rather than the single one?

What might be worth doing is seeing if a complete import into a fresh system restores the originals.
As you are using Linux you can launch the dev version and import into that without risking your "live" data.
Just go to help > copy dev mode command to clipboard and paste that command into a terminal or launcher type thing (I think alt + f2 on ubuntu?).

That will launch a new instance of Joplin running on a different profile (your original will be in ~/.config/joplin-desktop the new one will be ~/.config/joplin**dev**-desktop and won't contain any of your settings or data.

I would import everything into that and see if it looks ok or not. If it is then you might want to consider starting your system over from those jex files.

Hi the problem is that during the import every note would be imported as a new note :frowning:
Therefore, each has a new ID and your links will no longer work.
Have this in a test already experienced and was already addressed in the forum I think from rxliuli.

I wanted to write a new importer for the backup plugin that keeps the IDs, but I didn't have time to finish this.

Don't suppose you have a link to that conversation, just curious as I suspect I'm about to rehash the discussion.

Links within a single exported JEX still work, I guess this is why I've never seen it as I've only ever exported as a single JEX, rather than individual ones.

The thing that is a bit odd to me is that the markdown of other links also change even if they don't relate to a link within that exported notebook.

i.e. if you export a single JEX and import to a new system, links will be maintained (with new IDs but the id is changed in the markdown too) but importing two different JEX files will break the links as each import will update the IDs differently.

As it is a backup solution do you reckon it might be better to have the "single JEX" export selected by default? At least that has everything intact and if somebody does later want to just import one notebook then it is pretty easy to open the dev version and use that to export the exact notes they want.

Hm OK, I have tested it again and you are abolute right!

Singel JEX everything is fine, multiple JEX and the links are broken.

But unfortunately even then all links are lost :frowning:

@wyl You have a JEX per notebook? If so, you should be able to convert them to a singel JEX easily.

@wyl

  1. Open one of the JEX files in a ZIP program like 7-Zip
  2. Open a second JEX and add all files to the first JEX
  3. Repeat step 2 for all files
  4. Import first JEX which now contains all notes

Now all links should work again

Yes but it means that if somebody was restoring a system from nothing the single JEX would maintain the links whilst a user trying to restore a notebook hasn't lost any data, its just a longer process to import a single notebook. i.e. having single JEX backup benefits the complete restore process more than it negatively affects the single notebook restore process. (Although technically nothing is lost as you just demonstrated above as you can combine the archives).

Otherwise I'm not sure I see a way around it without redoing the entire import system. For example you could add a check to the importer to see if a markdown reference is contained within the JEX and if it isn't, don't change it.
But I imagine that would add a lot of processing overhead to the importer and also doesn't address importing a second notebook - it would only maintain links of stuff already in the system. i.e. You delete and restore Notebook A, all links would be maintained (both internally and to Notebooks C, D, E etc.) but if you imported Notebooks A + B as two different JEX files, any links between A + B will be broken.

Yes for a full recovery it always goes with the singel JEX. But as soon as you want to have back only a single notebook/note in any way, the links are lost.

  • I have deleted Notebook C
  • Notes in Notebook A and B have links to notes from Notebook C
  • I import the single file JEX to the DEV (The links are OK)
  • I export Notebook C from dev
  • I import the export from DEV to Joplin (All links are lost)

I think the easiest way would be to keep the original ID during a import in an additional import option,
as this overwrites or skips existing notes, at the moment duplicates are created.

When importing it preserves the links but only if the linked notes are also included in the archive. So indeed if only a note as been exported, when it's imported back the links most likely won't work.

It's a bit tricky to solve - normally we want archives to be self-contained with no relation to an existing note collection. So that's why all links and IDs are rewritten, but of course if the linked notes are not present it's not really self contained anymore. Perhaps we should always include linked notes in exported archives.

hi all,
yippee!!
i am home now for a short time after being away this morning and i read all your messages, for which I thank you very, very much.
First it was bad news for me: (jack Gruber: "Singel JEX everything is fine, multiple JEX and the links are broken. i have multiple jex's", sadly)
But after that you came up with a solution: "You have a JEX per notebook? If so, you should be able to convert them to a singel JEX easily."
A packet fell from my heart, thank heaven!!
I am going to try your solution out tonight, fingers crossed it works.....
Many, many thanks again for your suggestions an solution, i'll let you all know how this ends.
Wyl.

2 Likes

This solution I find not really smart and also absolutely intransparent for end users-

  • I have a Note in Notebook A with Links to a Note in Notebook B
  • Export Notebook A
  • Edit the Note in Notebook B
  • Export Notebook B

During the Import of the Notes of Notebook A, also the linked Note from Notebook B is created. When I Import now the Export from Notebook B I have the linked Noted duplicated. But the Links from the Note in Notebook A points to the outdated version of the Note and the newer correct one is not linked because this note has a new id :frowning:

I find it is more of a problem that the note ids are always recreated. For a real backup this is a no go. For an export / import into another instance this does not matter.

That's exactly what I was motivated to create a backup plugin, but it's still not available as there isn't enough motivation to do it (I don't use jex backup either, since I once lost all note ids)

The Ids only lost during the import, therefore only a separate import for backup purposes would have to be written