Change all posts by user to wiki

wiki-posts

(Joshua Rosenfeld) #1

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?


(Jeff Atwood) #2

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


(Joshua Rosenfeld) #3

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


(cpradio) #4

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.


(Joshua Rosenfeld) #5

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


(cpradio) #6

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.


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

(Sam Saffron) #8

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


(Joshua Rosenfeld) #9

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.


(Joshua Rosenfeld) #10

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.