summaryrefslogtreecommitdiff
path: root/db/migrate/20140907220153_serialize_service_properties.rb
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-02-23 17:56:05 -0800
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-02-23 17:56:05 -0800
commit0f6221e7365a93a356410f4d38443381924d4cc6 (patch)
treee6615027d622636a376504cd54488a0502a40c32 /db/migrate/20140907220153_serialize_service_properties.rb
parentb821a1bd41166c295ea1625ccf57b9bb48f61649 (diff)
downloadgitlab-ce-0f6221e7365a93a356410f4d38443381924d4cc6.tar.gz
Make services migration more reliable
Diffstat (limited to 'db/migrate/20140907220153_serialize_service_properties.rb')
-rw-r--r--db/migrate/20140907220153_serialize_service_properties.rb24
1 files changed, 15 insertions, 9 deletions
diff --git a/db/migrate/20140907220153_serialize_service_properties.rb b/db/migrate/20140907220153_serialize_service_properties.rb
index bd75ab1eacb..d45a10465be 100644
--- a/db/migrate/20140907220153_serialize_service_properties.rb
+++ b/db/migrate/20140907220153_serialize_service_properties.rb
@@ -1,6 +1,9 @@
class SerializeServiceProperties < ActiveRecord::Migration
def change
- add_column :services, :properties, :text
+ unless column_exists?(:services, :properties)
+ add_column :services, :properties, :text
+ end
+
Service.reset_column_information
associations =
@@ -19,18 +22,21 @@ class SerializeServiceProperties < ActiveRecord::Migration
:api_version, :jira_issue_transition_id],
}
- Service.all.each do |service|
+ Service.find_each(batch_size: 500).each do |service|
associations[service.type.to_sym].each do |attribute|
service.send("#{attribute}=", service.attributes[attribute.to_s])
end
- service.save
+
+ service.save(validate: false)
end
- remove_column :services, :project_url, :string
- remove_column :services, :subdomain, :string
- remove_column :services, :room, :string
- remove_column :services, :recipients, :text
- remove_column :services, :api_key, :string
- remove_column :services, :token, :string
+ if column_exists?(:services, :project_url)
+ remove_column :services, :project_url, :string
+ remove_column :services, :subdomain, :string
+ remove_column :services, :room, :string
+ remove_column :services, :recipients, :text
+ remove_column :services, :api_key, :string
+ remove_column :services, :token, :string
+ end
end
end