aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--db/migrate/112_add_api_key_to_public_bodies.rb53
1 files changed, 47 insertions, 6 deletions
diff --git a/db/migrate/112_add_api_key_to_public_bodies.rb b/db/migrate/112_add_api_key_to_public_bodies.rb
index 1a01b3d78..43dccb198 100644
--- a/db/migrate/112_add_api_key_to_public_bodies.rb
+++ b/db/migrate/112_add_api_key_to_public_bodies.rb
@@ -4,12 +4,53 @@ class AddApiKeyToPublicBodies < ActiveRecord::Migration
def self.up
add_column :public_bodies, :api_key, :string
- # PublicBody.find_each do |pb|
- # pb.api_key = SecureRandom.base64(32)
- # pb.save!
- # end
- #
- # change_column_null :public_bodies, :api_key, false
+ if ActiveRecord::Base.connection.adapter_name == "PostgreSQL"
+ execute <<-SQL
+ update public_bodies
+ set api_key = encode(decode(
+ lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ ||lpad(to_hex(floor(random()*256) :: integer), 2, '0')
+ , 'hex'), 'base64')
+ SQL
+ else
+ PublicBody.find_each do |pb|
+ pb.api_key = SecureRandom.base64(33)
+ pb.save!
+ end
+ end
+
+ change_column_null :public_bodies, :api_key, false
end
def self.down