diff options
author | Thong Kuah <tkuah@gitlab.com> | 2018-10-14 23:42:29 +0300 |
---|---|---|
committer | Thong Kuah <tkuah@gitlab.com> | 2018-10-29 06:21:31 +0300 |
commit | 0e15eec86d83cbdfefe17966bf5c02e4d419a34d (patch) | |
tree | f2928be797556746f44e2689181d3cd5ba4dab79 /db/migrate/20181014203236_create_cluster_groups.rb | |
parent | b868b02c626dc4f9986eb93e54cf593055121972 (diff) |
Associate clusters model to groups
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.
Diffstat (limited to 'db/migrate/20181014203236_create_cluster_groups.rb')
-rw-r--r-- | db/migrate/20181014203236_create_cluster_groups.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/db/migrate/20181014203236_create_cluster_groups.rb b/db/migrate/20181014203236_create_cluster_groups.rb new file mode 100644 index 00000000000..69382d5c851 --- /dev/null +++ b/db/migrate/20181014203236_create_cluster_groups.rb @@ -0,0 +1,17 @@ +# 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 |