31 lines
1.2 KiB
Ruby
31 lines
1.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class UpsertBaseWorkItemTypes < ActiveRecord::Migration[6.1]
|
|
module WorkItem
|
|
class Type < ActiveRecord::Base
|
|
self.table_name = 'work_item_types'
|
|
|
|
enum base_type: {
|
|
issue: 0,
|
|
incident: 1,
|
|
test_case: 2,
|
|
requirement: 3
|
|
}
|
|
end
|
|
end
|
|
|
|
def up
|
|
# upsert default types
|
|
WorkItem::Type.find_or_create_by(name: 'Issue', namespace_id: nil, base_type: :issue, icon_name: 'issue-type-issue')
|
|
WorkItem::Type.find_or_create_by(name: 'Incident', namespace_id: nil, base_type: :incident, icon_name: 'issue-type-incident')
|
|
WorkItem::Type.find_or_create_by(name: 'Test Case', namespace_id: nil, base_type: :test_case, icon_name: 'issue-type-test-case')
|
|
WorkItem::Type.find_or_create_by(name: 'Requirement', namespace_id: nil, base_type: :requirement, icon_name: 'issue-type-requirements')
|
|
end
|
|
|
|
def down
|
|
# We expect this table to be empty at the point of the up migration,
|
|
# however there is a remote possibility that issues could already be
|
|
# using one of these types, with a tight foreign constraint.
|
|
# Therefore we will not attempt to remove any data.
|
|
end
|
|
end
|