diff options
author | Kamil Trzcinski <ayufan@ayufan.eu> | 2015-12-10 16:08:09 +0300 |
---|---|---|
committer | Kamil Trzcinski <ayufan@ayufan.eu> | 2015-12-10 18:04:08 +0300 |
commit | 80f8074d01a310141984dad9dfe01a27b533e78a (patch) | |
tree | 7572628ea97b47ca3a2ff613bbfc8e2564256978 /db/migrate/20151210125927_migrate_ci_hip_chat_service.rb | |
parent | d5c91bb9a601a1a344d94763654f0b0996857497 (diff) |
Migrate SlackService and HipChat service
Diffstat (limited to 'db/migrate/20151210125927_migrate_ci_hip_chat_service.rb')
-rw-r--r-- | db/migrate/20151210125927_migrate_ci_hip_chat_service.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/db/migrate/20151210125927_migrate_ci_hip_chat_service.rb b/db/migrate/20151210125927_migrate_ci_hip_chat_service.rb new file mode 100644 index 00000000000..2fdaf5fb917 --- /dev/null +++ b/db/migrate/20151210125927_migrate_ci_hip_chat_service.rb @@ -0,0 +1,30 @@ +class MigrateCiHipChatService < ActiveRecord::Migration + include Gitlab::Database + + def up + # From properties strip `hipchat_` key + properties_query = "SELECT REPLACE(properties, '\"hipchat_', '\"') FROM ci_services " \ + 'JOIN ci_projects ON ci_services.project_id=ci_projects.id ' \ + 'WHERE ci_projects.gitlab_id=services.project_id' + + active_query = 'SELECT 1 FROM ci_services ' \ + 'JOIN ci_projects ON ci_services.project_id=ci_projects.id ' \ + "WHERE ci_projects.gitlab_id=services.project_id AND ci_services.type='Ci::HipchatService' AND ci_services.active" + + # We update the service since services are always generated for project, even if they are inactive + # Activate service and migrate properties if currently the service is not active + execute( + "UPDATE services SET properties=(#{properties_query}), build_events=#{true_value}, active=#{true_value} " \ + "WHERE NOT services.active AND services.type='HipchatService' AND (#{active_query}) IS NOT NULL" + ) + + # Tick only build_events if the service is already active + execute( + "UPDATE services SET build_events=#{true_value} " \ + "WHERE services.active AND services.type='HipchatService' AND (#{active_query}) IS NOT NULL" + ) + end + + def down + end +end |