Commit 03427738dfa13377bcd02c75f0807a50d6de393f
1 parent
6db55553
Exists in
master
and in
23 other branches
Properly migrating permission data
For some reason, the permissions attribute was not being serialized and I was getting a "cannot convert Array into String" error.
Showing
1 changed file
with
10 additions
and
10 deletions
Show diff stats
db/migrate/082_add_invite_members_permission_to_admins.rb
| 1 | 1 | class AddInviteMembersPermissionToAdmins < ActiveRecord::Migration |
| 2 | 2 | def self.up |
| 3 | - Environment.all.each{ |env| | |
| 4 | - admin = Profile::Roles.admin(env.id) | |
| 5 | - admin.permissions += ['invite_members'] | |
| 6 | - admin.save! | |
| 7 | - } | |
| 3 | + select_all("SELECT * from roles where key = 'profile_admin'").each do |role| | |
| 4 | + permissions = (YAML.load(role['permissions']) + ['invite_members']).to_yaml | |
| 5 | + role_id = role['id'] | |
| 6 | + update("update roles set permissions = '%s' where id = %d" % [permissions, role_id]) | |
| 7 | + end | |
| 8 | 8 | end |
| 9 | 9 | |
| 10 | 10 | def self.down |
| 11 | - Environment.all.each{ |env| | |
| 12 | - admin = Profile::Roles.admin(env.id) | |
| 13 | - admin.permissions -= ['invite_members'] | |
| 14 | - admin.save! | |
| 15 | - } | |
| 11 | + select_all("SELECT * from roles where key = 'profile_admin'").each do |role| | |
| 12 | + permissions = (YAML.load(role['permissions']) - ['invite_members']).to_yaml | |
| 13 | + role_id = role['id'] | |
| 14 | + update("update roles set permissions = '%s' where id = %d" % [permissions, role_id]) | |
| 15 | + end | |
| 16 | 16 | end |
| 17 | 17 | end | ... | ... |