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>
This commit is contained in:
Rémy Coutable 2017-03-01 11:26:44 +01:00
parent 11dd2348c4
commit 2f40fc521e
No known key found for this signature in database
GPG key ID: 46DF07E5CD9E96AB
2 changed files with 6 additions and 4 deletions

View file

@ -0,0 +1,4 @@
---
title: Fix broken migration when upgrading straight to 8.17.1
merge_request: 9613
author:

View file

@ -1,11 +1,9 @@
class DisableInvalidServiceTemplates < ActiveRecord::Migration class DisableInvalidServiceTemplates < ActiveRecord::Migration
DOWNTIME = false DOWNTIME = false
unless defined?(Service)
class Service < ActiveRecord::Base class Service < ActiveRecord::Base
self.inheritance_column = nil self.inheritance_column = nil
end end
end
def up def up
Service.where(template: true, active: true).each do |template| Service.where(template: true, active: true).each do |template|