0e15eec86d
Even though we currently only should have one group for a cluster, we allow the flexibility to associate to other groups in the future. This also matches the runner <=> groups association. - Adds Cluster#first_group, aliased to Cluster#group. For the conceivable future, a cluster will have at most one group. - Prevent mixing of group and project clusters. If project type clusters, it should only have projects assigned. Similarly with groups. - Default cluster_type to :project_type. As it's very small table we can set default and null: false in one release.
17 lines
477 B
Ruby
17 lines
477 B
Ruby
# frozen_string_literal: true
|
|
|
|
class CreateClusterGroups < ActiveRecord::Migration
|
|
include Gitlab::Database::MigrationHelpers
|
|
|
|
DOWNTIME = false
|
|
|
|
def change
|
|
create_table :cluster_groups do |t|
|
|
t.references :cluster, null: false, foreign_key: { on_delete: :cascade }
|
|
t.references :group, null: false, index: true
|
|
|
|
t.index [:cluster_id, :group_id], unique: true
|
|
t.foreign_key :namespaces, column: :group_id, on_delete: :cascade
|
|
end
|
|
end
|
|
end
|