Embed Notice
HTML Code
Corresponding Notice
- Embed this notice@dan
> And it doesn't even seem like it'd be especially hard to fix, if the software folk wanted to. A tool to export the database as plain text (JSON, whatever) and another tool to import it in the new place.
Yeah it always looks easy to people who haven't touched the code.
First problem is that importing gets you nowhere useful as the entire fediverse only knows about the content under the old URLs.
So ok you import your post history ignoring the other technical issues and you've made a mess: you cannot trust timestamps of activities. Everyone sane orders them in the database using a Flake or Snowflake ID which is a type of time-sorted unique hash. So now you have to be able to backdate these hashes so the import doesn't kill the local timelines by flooding them with old garbage.
Ok so now someone added the ability to backdate Flakes. Next problem is the posts have to be imported and data has to be processed. Any mentions of users needs to be resolved. So every user interacted with has to be imported so the links can resolve to the local copy of their profiles. Is their server dead or account deleted? Uhoh, that's gonna break processing the post. Now you've introduced an edge case nobody can really handle reliably.
How about deliveries? Now you don't know who the posts were delivered to so if you do want to delete any of them in the future you're forced to spam the deletes go every known server like Mastodon does which is terrible behavior.
How about media? Now you have to be able to backup all the media attachments too and restore them onto the new server. Every post with media needs to have the URLs rewritten to whatever the new server's media hosting looks like and (ideally) re-run through their media processing pipelines for security reasons or importing media will bypass your security controls.
Likes, favs, boosts? All lost.
Custom instance emojis? Broken too unless you move those over and the posts need to be re-processed to fix those URLs too
I guess we just don't care enough to fix this trivial problem 🤷