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:
parent
11dd2348c4
commit
2f40fc521e
2 changed files with 6 additions and 4 deletions
4
changelogs/unreleased/28850-fix-broken-migration.yml
Normal file
4
changelogs/unreleased/28850-fix-broken-migration.yml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
---
|
||||||
|
title: Fix broken migration when upgrading straight to 8.17.1
|
||||||
|
merge_request: 9613
|
||||||
|
author:
|
|
@ -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|
|
||||||
|
|
Loading…
Reference in a new issue