Merge Discourse and SMF

Hello!

I have the following question:
Since 2017 I have a SMF forum with now about 4000 posts.
Last year I had in parallel a Discourse forum with about 1000 posts, but it is not online at the moment, because I went back to SMF in December 2021.
Well, I just don’t like SMF anymore, so I would like to migrate it to Discourse, but I would also like to take the 1000 posts from the Discourse forum.
From the Discourse forum I have a backup, and from SMF it is no problem to make a backup.

Migrating the SMF to Discourse should not be a problem, although I have never tried it.
I have to admit that both have similar categories, but there are differences.

Is it possible to merge both forums into one?
If so, what is the best way to do it?

From SMF I only need the users, which are the same in both forums (more or less), and the posts. In principle, all posts from the SMF forum could be imported into a separate category, I would then move them myself into the correct categories (or just leave them there as a kind of archive).

My approach would be the following:

  1. I make a backup of the current SMF and import this into a 2nd SMF and move all topics and posts there into a single category, and make a backup of that again for import to Discourse.
  2. I put the “old” Discourse Forum back online. (with or without the 1000 posts?).
  3. I import the backup from SMF.

Here I have the question if this works at all, because the topics and posts have IDs and timestamps from SMF and these are linked with users etc…

Honestly, I have no idea how to proceed and whether it is even possible.
Is the script already adapted for SMF 2.1.x?

Any help is appreciated!

I’m not sure if discourse supports native backups from SMF. I know the official Discourse team can assist with migrations, but I don’t know the cost. In the past, I’ve used the Discourse API to migrate large amounts of forum data. I created my categories on the Discourse forum. Once done, I created a Python script to scrape my old forum and seed the new one with topics, users, etc.

In the docs is an instruction how to migrate from SMF to Discourse.

https://meta.discourse.org/docs?topic=90314

With a script to scrape the data from SMF and import it to Discourse would be good, if I could program such things. :wink:

2 Likes

Ah, ok. I didn’t know they had official docs on how to migrate from SMF2. Is your forum an SMF2 or SMF1 forum?

Yes and no, it’s a SMF 2.1.x, and SMF changed a lot from 2.0.x to 2.1.x

And I still have the problem to merge both forums.

ok. Thanks for that information :slight_smile:
At what step in the migration guide are you having an issue?

see also: Merge two Discourse sites into one

With the caveat that I’ve not done migrations myself, my approach would be:

  • migrate your SMF data to a new instance
  • merge the two Discourse instances with the above guide

Well, we all have our hammers, but I found the merge to DIscourse sites script to miss a bunch of edge cases (I can’t quite remember what they were now). And then you’ve got two transitions to make.

I’d probably just run the SMF script on top of the existing Discourse site. When I’ve done that I’ve made tweaks to do stuff like see that categories get merged and users get lined up between the sites. If you know a bit about programming, the scripts are generally easy enough to make sense of, even if you don’t know Ruby.

2 Likes

Well, I haven’t started right now.
But, my question was 1. if this script works with SMF2.1, and 2. if it’s possible to merge an SMF into an existing Discourse instance.

I totally missed that. Thanks for your answer. I think this is the way it should work.

@pfaffman
I don’t need everything from SMF, just the posts, topics and users.

Maybe I have to tinker to get it to work.

That’s pretty much everything that gets imported. It’s likely easier to import the categories than not to.

Yes. And there is no way to know how much work there will be until you give it a try.

I think I will do the following steps:

  1. Take my SMF and move every topic (with posts) into one category and then make a backup from the db.
  2. Install a fresh Discourse and import the SMF backup ( hope the import script will work with SMF 2.1).
  3. Delete and reinstall discourse and then upload my Discourse backup with the settings and posts
  4. Merge the two Discourse forums into one with the guide @supermathie linked

I hope it will work, otherwise I need to pay someone who can do it for me.