Question regarding JEX-imported IDs

From what I remember from older experience and what I can dig up in the forum, importing from JEX gives every note a new ID.

There are old threads such as this:

Is that still the case? The import/export docs don't say.

I think the behavior was fine before, but as time moves on it's becoming a bit problematic; but I don't wanna waste everyone's time making a case if this has already been changed and I just missed it.

importing from JEX gives every note a new ID.

Yes that's still correct and that will never be changed

Oh, so that's permanent? Unfortunate.

Okay, so what's the best 'disaster recovery' method if I absolutely want to preserve them?

Currently I run Joplin Server of which I make regular SQL-dump backups, and I do daily JEX dumps to a NAS (with the backup plugin) as well.

Of course having the JEX dump is better than losing notes, but the IDs would be gone; is there anything else I should be doing to be ready to fully restore?

What comes to mind right now is maybe keeping an offline copy of the SQL dump as well; and in case of trouble, standing up a local Server and restoring from that. (But I'd need internet connectivity for that to work.)

Another thing maybe could be a backup of the profile folder? That sounds troublesome. It probably can't be reliably done while Joplin is running, and so on.

Anybody else dealt with anything like this? What are your solutions?
... I guess there won't be very many, will there. :sweat_smile:

I think your setup is actually fine as it makes sense to backup both server and app, since they have different data, and for another layer of safety. And for the app, JEX is the best way to backup.

But why would you want to keep the IDs?

Thanks.

As for the IDs - Joplin is ever more tightly integrated into my workflow, and that includes some integrations that update notes within it. And that would break on restore, as all the IDs in my other systems would now be gone.
(I do use the rudimentary support for plugin-specific note metadata, to store the other system's IDs in Joplin notes as well, so I could re-sync the other DBs, but that would be a lot of work to implement and execute.)

Okay, you could say that's a me-problem because not everybody wants to do that.
But Joplin also has the useful "Copy external link" feature, that gives me something like joplin://x-callback-url/openNote?id=e2aeb007374542c59a33c2fe08470428. I sometimes paste those into other applications, to quickly jump to the relevant Joplin note. I assume those would all break as well, and would be even harder to fix.

Basically, the tighter I integrate Joplin into my workflow, the more these recovery scenarios kept bugging me, that's why I asked.

@zblesk I can see why the change of ids could be a pain with your use case.

I think in your case as you are running Joplin server and already making backups there, you could rely on those for disaster recovery. If you need to restore your server from a backup, providing you wipe the local data on all your clients and fully resync them from the server, then that will retain all the ids and wouldn't cause any sync issues. If there was a bit of data which did not get synced when the server died, you can import a jex backup into a separate profile which is not synced anywhere. Then manually extract the unsynced data and copy it to your synced profile.