gitlab-org--gitlab-foss/db/post_migrate/20170211073944_disable_invalid_service_templates.rb
Rémy Coutable 2f40fc521e
Disable the inheritance column of services in DisableInvalidServiceTemplates migration
The `unless defined?(Service)` was useless since in production env,
models are eager loaded, thus we wouldn't disable the STI, resulting in
the following error:

The single-table inheritance mechanism failed to locate the subclass:
'GitlabCiService'. This error is raised because the column 'type' is
reserved for storing the class in case of inheritance. Please rename
this column if you didn't intend it to be used for storing the
inheritance class or overwrite Service.inheritance_column to use another
column for that
information./opt/gitlab/embedded/service/gitlab-rails/db/post_migrate/20170211073944_disable_invalid_service_templates.rb:11:in `up'

Signed-off-by: Rémy Coutable <remy@rymai.me>
2017-03-01 14:06:50 +01:00

13 lines
315 B
Ruby

class DisableInvalidServiceTemplates < ActiveRecord::Migration
DOWNTIME = false
class Service < ActiveRecord::Base
self.inheritance_column = nil
end
def up
Service.where(template: true, active: true).each do |template|
template.update(active: false) unless template.valid?
end
end
end