a8bfe20d0d
These new checks can be used to check if migrations require downtime or not (as tagged by their authors). In CI this compares the current branch with master so migrations added by merge requests are automatically verified. To check the migrations added since a Git reference simply run: bundle exec rake gitlab:db:downtime_check[GIT_REF]
28 lines
692 B
Ruby
28 lines
692 B
Ruby
module Gitlab
|
|
class DowntimeCheck
|
|
class Message
|
|
attr_reader :path, :offline, :reason
|
|
|
|
OFFLINE = "\e[32moffline\e[0m"
|
|
ONLINE = "\e[31monline\e[0m"
|
|
|
|
# path - The file path of the migration.
|
|
# offline - When set to `true` the migration will require downtime.
|
|
# reason - The reason as to why the migration requires downtime.
|
|
def initialize(path, offline = false, reason = nil)
|
|
@path = path
|
|
@offline = offline
|
|
@reason = reason
|
|
end
|
|
|
|
def to_s
|
|
label = offline ? OFFLINE : ONLINE
|
|
|
|
message = "[#{label}]: #{path}"
|
|
message += ": #{reason}" if reason
|
|
|
|
message
|
|
end
|
|
end
|
|
end
|
|
end
|