Change all posts by user to wiki

AI-generated summary

Change all posts by user to wiki: After migrating a knowledgebase from MediaWiki to Discourse, jomaxro is looking to change all posts to wiki via a rake command. However, codinghorror is not aware of a direct method.

cpradio suggests using the Rails console, while riking provides a working solution: u = User.find_by_username('abc'); Post.where(user: u).each do |p| p.wiki = true; p.save; end. This method successfully changes all posts by a specific user to wiki. jomaxro confirms that this solution works, but notes that it does not affect “About this Category” pages, which must be updated manually.

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 Contribute > 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.

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.

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

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

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.

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.