parent
e476974372
commit
ce751c453e
@ -0,0 +1,42 @@ |
||||
#-- copyright |
||||
# OpenProject is a project management system. |
||||
# |
||||
# Copyright (C) 2012-2013 the OpenProject Foundation (OPF) |
||||
# |
||||
# This program is free software; you can redistribute it and/or |
||||
# modify it under the terms of the GNU General Public License version 3. |
||||
# |
||||
# See doc/COPYRIGHT.rdoc for more details. |
||||
#++ |
||||
|
||||
class MigrateTimelinesEnumerations < ActiveRecord::Migration |
||||
PROJECT_STATUS_TYPE_NAME = { 'Timelines::ReportedProjectStatus' => 'ReportedProjectStatus' } |
||||
|
||||
def up |
||||
migrate_reported_project_statuses(PROJECT_STATUS_TYPE_NAME) |
||||
remove_planning_element_statuses |
||||
end |
||||
|
||||
def down |
||||
migrate_reported_project_statuses(PROJECT_STATUS_TYPE_NAME.invert) |
||||
end |
||||
|
||||
private |
||||
|
||||
def migrate_reported_project_statuses(project_status_type_name) |
||||
project_status_type_name.each do |k, v| |
||||
update <<-SQL |
||||
UPDATE enumerations |
||||
SET type = '#{v}' |
||||
WHERE type = '#{k}'; |
||||
SQL |
||||
end |
||||
end |
||||
|
||||
def remove_planning_element_statuses |
||||
delete <<-SQL |
||||
DELETE FROM enumerations |
||||
WHERE type = 'Timelines::PlanningElementStatus' |
||||
SQL |
||||
end |
||||
end |
Loading…
Reference in new issue