Change all posts by user to wiki

We just finished migrating from our knowledgebase from MediaWiki to Discourse. Yeah!

We had 4 users manually add all the posts (no migration scripts that I saw), and then used @techAPJ’s guide to convert all the posts to a single user.

Now that all the topics are owned by the same user, is there any way to change them all to wiki via a rake command?

Not that I’m aware of, at the moment.

Alrighty then, I’ve changed this topic to #feature. Hope #wiki-posts can get some love in 1.7!

You can do it via the Rails console.

Something along the lines of

p = Post.find_each(user_id: X)
p.each_entry(wiki: true)

Then you have to figure out how to call .save on each entry… I’m struggling with that part, but it should be possible.

1 Like

My knowledge of the codebase is minuscule compared to yours - I’ll do some digging.

I think this is mostly knowing Ruby/Rails at this point, p becomes an enumeration, so figuring out how to call a method on each item in the enumeration would be the solution. I just haven’t had a chance to google that yet.

1 Like
u = User.find_by_username('abc')
Post.where(user: u).each do |p|
  p.wiki = true
  p.save
end
5 Likes

Is this for stonehearth or another site you are self-hosting, if it is for stonehearth we can run the commands for you.

1 Like

Another site, thanks @sam. We’re self hosting a site at the university where I work for an internal help desk knowledge base. We’re just finishing manually importing from MediaWiki.

2 Likes

Thanks @riking! Just tried that and it worked! Unfortunately, I overlooked the fact that About this Category pages were owned by the user, but it was easy enough to disable wiki via the UI for the 10 or so category topics.