diff options
author | Seb Bacon <seb.bacon@gmail.com> | 2012-07-04 11:12:21 +0100 |
---|---|---|
committer | Seb Bacon <seb.bacon@gmail.com> | 2012-07-04 11:12:21 +0100 |
commit | 765d7fa16a428ec296d2278bc369d3680c7afaac (patch) | |
tree | 16d3ede6a3eb74bc90b4b1fe16126ef6f4f8a74f /db | |
parent | a9f1d84e7810936f7917c8a367b4713ea77554c9 (diff) | |
parent | d95a5eb0b6aaba3a0d88ab0f2fe4c948c051ecc9 (diff) |
Merge branch 'release/0.6.2'0.6.2
Conflicts:
doc/INSTALL.md
Diffstat (limited to 'db')
-rw-r--r-- | db/migrate/112_add_api_key_to_public_bodies.rb | 47 |
1 files changed, 44 insertions, 3 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 24961612d..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,9 +4,50 @@ 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! + 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 |