blob: 10bc0c192e74487f8a0d2dada94f4e4dcfb7a92c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# frozen_string_literal: true
module Gitlab
module Database
module Migrations
module MilestoneMixin
extend ActiveSupport::Concern
include Gitlab::ClassAttributes
MilestoneNotSetError = Class.new(StandardError)
class_methods do
def milestone(milestone_str = nil)
if milestone_str.present?
set_class_attribute(:migration_milestone, milestone_str)
else
get_class_attribute(:migration_milestone)
end
end
end
def initialize(name = class_name, version = nil, type = nil)
raise MilestoneNotSetError, "Milestone is not set for #{self.class.name}" if milestone.nil?
super(name, version)
@version = Gitlab::Database::Migrations::Version.new(version, milestone, type)
end
def milestone # rubocop:disable Lint/DuplicateMethods
@milestone ||= self.class.milestone
end
end
end
end
end
|