scinote-web/db/migrate/20160205192344_migrate_organizations_structure.rb
2017-06-30 10:23:28 +02:00

45 lines
1.1 KiB
Ruby

class MigrateOrganizationsStructure < ActiveRecord::Migration[4.2]
def up
# Update estimated size of all assets
Asset.includes(:asset_text_datum).find_each do |asset|
asset.update_estimated_size
asset.update(file_present: true)
end
# Calculate teams' taken space
Team.find_each do |team|
team.calculate_space_taken
team.save
end
# Finally, the trickiest task: Re-define teams
demo_team = Team.find_by(name: "Demo team")
if demo_team
demo_team.user_teams.each do |uo|
uo.destroy
end
end
Team.find_each do |team|
user = team.users.first
team.update(created_by: user)
end
UserTeam.find_each do |uo|
uo.update(role: 2)
end
end
def down
# We cannot re-assign users to demo team or re-update
# their previous user-team roles
# But we can remove created_by field from teams
Team.find_each do |team|
team.update(created_by: nil)
end
# Resetting calculated assets & teams' space
# to 0 doesn't make much sense even when downgrading migration
end
end