diff options
Diffstat (limited to 'db/migrate/20161025231710_migrate_jira_to_gem.rb')
-rw-r--r-- | db/migrate/20161025231710_migrate_jira_to_gem.rb | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/db/migrate/20161025231710_migrate_jira_to_gem.rb b/db/migrate/20161025231710_migrate_jira_to_gem.rb deleted file mode 100644 index aa1c59ec9e6..00000000000 --- a/db/migrate/20161025231710_migrate_jira_to_gem.rb +++ /dev/null @@ -1,73 +0,0 @@ -class MigrateJiraToGem < ActiveRecord::Migration[4.2] - DOWNTIME = true - - DOWNTIME_REASON = <<-HEREDOC - Refactor all Jira services properties(serialized field) to use new jira-ruby gem. - There were properties on old Jira service that are not needed anymore after the - service refactoring: api_url, project_url, new_issue_url, issues_url. - We extract the new necessary some properties from old keys and delete them: - taking project_key from project_url and url from api_url - HEREDOC - - def up - active_services_query = "SELECT id, properties FROM services WHERE services.type IN ('JiraService') AND services.active = true" - - select_all(active_services_query).each do |service| - id = service['id'] - properties = JSON.parse(service['properties']) - properties_was = properties.clone - - # Migrate `project_url` to `project_key` - # Ignore if `project_url` doesn't have jql project query with project key - if properties['project_url'].present? - jql = properties['project_url'].match('project=([A-Za-z]*)') - properties['project_key'] = jql.captures.first if jql - end - - # Migrate `api_url` to `url` - if properties['api_url'].present? - url = properties['api_url'].match('(.*)\/rest\/api') - properties['url'] = url.captures.first if url - end - - # Delete now unnecessary properties - properties.delete('api_url') - properties.delete('project_url') - properties.delete('new_issue_url') - properties.delete('issues_url') - - # Update changes properties - if properties != properties_was - execute("UPDATE services SET properties = '#{quote_string(properties.to_json)}' WHERE id = #{id}") - end - end - end - - def down - active_services_query = "SELECT id, properties FROM services WHERE services.type IN ('JiraService') AND services.active = true" - - select_all(active_services_query).each do |service| - id = service['id'] - properties = JSON.parse(service['properties']) - properties_was = properties.clone - - # Rebuild old properties based on sane defaults - if properties['url'].present? - properties['api_url'] = "#{properties['url']}/rest/api/2" - properties['project_url'] = - "#{properties['url']}/issues/?jql=project=#{properties['project_key']}" - properties['issues_url'] = "#{properties['url']}/browse/:id" - properties['new_issue_url'] = "#{properties['url']}/secure/CreateIssue.jspa" - end - - # Delete the new properties - properties.delete('url') - properties.delete('project_key') - - # Update changes properties - if properties != properties_was - execute("UPDATE services SET properties = '#{quote_string(properties.to_json)}' WHERE id = #{id}") - end - end - end -end |