Matthias Tarasiewicz
2009-Jan-26 12:37 UTC
[Instiki-devel] instiki moved to a new host, rails 2.2 and passenger, all previous spam removed
We moved the main instiki site to a new, faster hosting. We also set up apache with passenger to serve the site faster. We also deleted all the spam pages that were created in the past, so the site is slim and slick again. expect some further updates and a new version soon. -parasew
Morgan Sutherland
2009-Feb-04 17:57 UTC
[Instiki] instiki moved to a new host, rails 2.2 and passenger, all previous spam removed
Hello, How did you go about deleting spam messages? On Mon, Jan 26, 2009 at 7:37 AM, Matthias Tarasiewicz <parasew at gmail.com> wrote:> We moved the main instiki site to a new, faster hosting. We also set up > apache with passenger to serve the site faster. > We also deleted all the spam pages that were created in the past, so the > site is slim and slick again. > > expect some further updates and a new version soon. > > -parasew > _______________________________________________ > Instiki-users mailing list > Instiki-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/instiki-users >
Matthias Tarasiewicz
2009-Feb-05 02:33 UTC
[Instiki] instiki moved to a new host, rails 2.2 and passenger, all previous spam removed
On 04.02.2009, at 18:57, Morgan Sutherland wrote:> How did you go about deleting spam messages?we manually deleted the existing spam messages in the database, since the db grew too big and the export would take too long. if somebody tries to redo this manually, keep the following in mind: the data in the db is connected/linked, so when deleting rows from tables, make sure to not destroy the database integrity. the best approach to deal with the data is via the script/console. backup your database before interacting with the data! 1. invoke with ''ruby script/console production'' in the instiki root 2. get the page you want to alter >> mypage=Page.find_by_name(''HomePage'') 3. check how much revisions you''ve got >> mypage.revisions.count => 202 4. either delete all the versions but one (leave at least one revision! else your data integrity is gone!) >> mypage.revisions.each {|r| mypage.revisions.reload; r.destroy if mypage.revisions.count.to_i>1} >> mypage.revisions.reload >> mypage.revisions.count => 1 (keep in mind that on the website, the changes might be not visible immediately because of caching. delete everything in /cache to get the site to rebuild. if you accidentally deleted all the revisions of your page and get error 500''s: >> mypage=Page.find_by_name(''HomePage'') >> mypage .revisions .create (:revised_at=>Time.now,:author=>Author.new(''console'',''127.0.0.1'')) >> mypage.save! => true 5. selectively delete revisions: # delete all revisions systemwide that contain the word "v1agra" >> Page.find(:all).each {|p| p.revisions.each {|r| r.destroy if r.content.include? "V1agra" }} # delete all revisions systemwide that from the ip 55.55.55.55 >> Page.find(:all).each {|p| p.revisions.each{|r| r.destroy if r.ip=="55.55.55.55" }} # make sure that you don''t have any pages without revisions afterwards # either restore empty revisions >> Page.find(:all).each {|p| p .revisions .create (:revised_at=>Time.now,:author=>Author.new(''console'',''127.0.0.1'')) if p.revisions.size == 0} # or also delete the corresponding Pages without revisions >> Page.find(:all).each {|p| p.destroy if p.revisions.size == 0} in the next version of instiki there will be a "delete" functionality, but i am thinking of also implementing a delete-option for versions (revisions) soon, since databases can grow huge if there are lots of rollbacks. another idea would be something like an "administrative rollback" or "hard rollback" that deletes all previous versions between the current entry and the to-be-rolled-back entry, anyone interested in such a functionality? -m
Morgan Sutherland
2009-Feb-05 22:29 UTC
[Instiki] instiki moved to a new host, rails 2.2 and passenger, all previous spam removed
I''m very glad to hear that you''re planning to implement deletion! And the ability to delete revisions would be convenient. Thanks for your help. On Wed, Feb 4, 2009 at 9:33 PM, Matthias Tarasiewicz <parasew at gmail.com> wrote:> On 04.02.2009, at 18:57, Morgan Sutherland wrote: > >> How did you go about deleting spam messages? > > > we manually deleted the existing spam messages in the database, since the db > grew too big and the export would take too long. > > if somebody tries to redo this manually, keep the following in mind: > the data in the db is connected/linked, so when deleting rows from tables, > make sure to not destroy the database integrity. the best approach to deal > with the data is via the script/console. > > backup your database before interacting with the data! > > 1. invoke with ''ruby script/console production'' in the instiki root > 2. get the page you want to alter > >>> mypage=Page.find_by_name(''HomePage'') > > 3. check how much revisions you''ve got > >>> mypage.revisions.count > => 202 > > 4. either delete all the versions but one (leave at least one revision! else > your data integrity is gone!) > >>> mypage.revisions.each {|r| mypage.revisions.reload; r.destroy if >>> mypage.revisions.count.to_i>1} >>> mypage.revisions.reload >>> mypage.revisions.count > => 1 > > (keep in mind that on the website, the changes might be not visible > immediately because of caching. delete everything in /cache to get the site > to rebuild. > > if you accidentally deleted all the revisions of your page and get error > 500''s: > >>> mypage=Page.find_by_name(''HomePage'') >>> >>> mypage.revisions.create(:revised_at=>Time.now,:author=>Author.new(''console'',''127.0.0.1'')) >>> mypage.save! > => true > > 5. selectively delete revisions: > > # delete all revisions systemwide that contain the word "v1agra" >>> Page.find(:all).each {|p| p.revisions.each {|r| r.destroy if >>> r.content.include? "V1agra" }} > > # delete all revisions systemwide that from the ip 55.55.55.55 >>> Page.find(:all).each {|p| p.revisions.each{|r| r.destroy if >>> r.ip=="55.55.55.55" }} > > > > # make sure that you don''t have any pages without revisions afterwards > > # either restore empty revisions >>> Page.find(:all).each {|p| >>> p.revisions.create(:revised_at=>Time.now,:author=>Author.new(''console'',''127.0.0.1'')) >>> if p.revisions.size == 0} > > # or also delete the corresponding Pages without revisions >>> Page.find(:all).each {|p| p.destroy if p.revisions.size == 0} > > > > in the next version of instiki there will be a "delete" functionality, but i > am thinking of also implementing a delete-option for versions (revisions) > soon, since databases can grow huge if there are lots of rollbacks. > > another idea would be something like an "administrative rollback" or "hard > rollback" that deletes all previous versions between the current entry and > the to-be-rolled-back entry, anyone interested in such a functionality? > > -m > _______________________________________________ > Instiki-users mailing list > Instiki-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/instiki-users >