OpenProject is the leading open source project management software.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openproject/db/migrate/20131216171110_migrate_time...

43 lines
1.1 KiB

#-- 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