Technical details about the Kunena --> Discourse Migration

As a “migration report” of sorts, here are some details about the operation:


Our old database was very crowded with invalid users, due to years of being hit by spam bots. We took the chance to clear this up. We also had many users who had never visited, mostly people who signed up for the download or for the demo, but weren’t really Forum users.

Of course, we kept every user that had ever posted, no matter how long ago. And we kept users that didn’t post, but at least visited the forums. And finally, we even kept the most recent (a few years) users that didn’t visit and didn’t post, since they might still be intending to visit.

Of course, anybody can just open a new account if necessary.

Non-migrated data:

  • Avatars / Profile pictures
  • Karma points

Migrated data:

  • User name
  • User password
  • Email
  • Moderator status
  • Number of “thank yous” received (called “:heart: Likes” in Discourse)
  • Registration date
  • Signature text (appears only in the user profile page)


We migrated all Categories (sub-forums) except a few very old, very unused ones. In the near future, we mean to re-organize our content, making use of the extended possibilities of both Categories and Tags in Discourse.

Migrated data:

  • Category name
  • Description
  • Order


All 21,318 Topics were migrated.

Non-migrated data:

  • Sticky status. This is called “Pinned topics” in Discourse. We can just manually pin the ones we still want.

Migrated data:

  • Topic title
  • Date
  • Category
  • Subscription status, per user (called image in Discourse)


All 85,471 posts were migrated.

Non-migrated data:

  • file attachments that are not mentioned inside the text of the post. These are rare, and proved very hard to migrate. We have these stored, so we can restore them manually in the few cases where it’s worth the trouble.
  • [size] tags for titles

Migrated data:

  • Post text
  • Author
  • Date
  • Which post it’s replying to
  • list of Users who “thanked” (Liked) post
  • images inside posts
  • Content formatting:
    • Code blocks
    • Quotes from other users, with author
    • Bold, italic, underline
    • some emoji
    • bulleted lists
    • numbered lists


We added redirects so that all old Forum links ( get redirected to the correct Topic in Discourse :tada: . So eeverybody coming in from a search engine should find what they’re looking for.

Links to specific posts within Topics don’t get recognized, though. This is a technical limitation of Kunena and the Internet in general. By using a # hash fragment to indicate the specific post, Kunena made a bad design choice (one that Discourse correctly avoids). Browsers don’t actually send that part of the URL to the server, so there is no way the server can redirect that.

I’m a stubborn old geek so I still mean to try to fix some of the things that didn’t get migrated properly, for example, editing post content so that at least the Forum links that are inside our posts will link correctly to specific posts, or correcting a few emoji that Discourse doesn’t currently recognize, etc.

1 Like