Class: ConvertBinary
- Inherits:
-
ActiveRecord::Migration
- Object
- ActiveRecord::Migration
- ConvertBinary
- Defined in:
- db/migrate/20110422000000_convert_binary.rb
Defined Under Namespace
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.down ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'db/migrate/20110422000000_convert_binary.rb', line 46 def self.down rename_column :web_pages, :body, :body_binary rename_column :web_pages, :request, :request_binary rename_column :web_vulns, :request, :request_binary rename_column :web_vulns, :proof, :proof_binary add_column :web_pages, :body, :text add_column :web_pages, :request, :text add_column :web_vulns, :request, :text add_column :web_vulns, :proof, :text WebPage.find(:all).each { |r| r.body = bfilter(r.body_binary); r.save! } WebPage.find(:all).each { |r| r.request = bfilter(r.request_binary); r.save! } WebVuln.find(:all).each { |r| r.proof = bfilter(r.proof_binary); r.save! } WebVuln.find(:all).each { |r| r.request = bfilter(r.request_binary); r.save! } remove_column :web_pages, :body_binary remove_column :web_pages, :request_binary remove_column :web_vulns, :request_binary remove_column :web_vulns, :proof_binary WebPage.connection.schema_cache.clear! WebPage.reset_column_information WebVuln.connection.schema_cache.clear! WebVuln.reset_column_information end |
.up ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'db/migrate/20110422000000_convert_binary.rb', line 19 def self.up rename_column :web_pages, :body, :body_text rename_column :web_pages, :request, :request_text rename_column :web_vulns, :request, :request_text rename_column :web_vulns, :proof, :proof_text add_column :web_pages, :body, :binary add_column :web_pages, :request, :binary add_column :web_vulns, :request, :binary add_column :web_vulns, :proof, :binary WebPage.find(:all).each { |r| r.body = r.body_text; r.save! } WebPage.find(:all).each { |r| r.request = r.request_text; r.save! } WebVuln.find(:all).each { |r| r.proof = r.proof_text; r.save! } WebVuln.find(:all).each { |r| r.request = r.request_text; r.save! } remove_column :web_pages, :body_text remove_column :web_pages, :request_text remove_column :web_vulns, :request_text remove_column :web_vulns, :proof_text WebPage.connection.schema_cache.clear! WebPage.reset_column_information WebVuln.connection.schema_cache.clear! WebVuln.reset_column_information end |
Instance Method Details
#bfilter(str) ⇒ Object
13 14 15 16 17 |
# File 'db/migrate/20110422000000_convert_binary.rb', line 13 def bfilter(str) str = str.to_s str.encoding = 'binary' if str.respond_to?('encoding=') str.gsub(/[\x00\x7f-\xff]/, '') end |