Commit 03427738dfa13377bcd02c75f0807a50d6de393f
1 parent
6db55553
Exists in
master
and in
28 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 | ... | ... |