From cb494b84f2fd7648884ebdab94fcc72ee06b4411 Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Fri, 28 Jul 2023 15:31:19 +1000 Subject: [PATCH] Require EnterpriseRelationship.belongs_to by default --- app/models/enterprise_relationship.rb | 3 ++- ...2_require_parent_and_child_on_enterprise_relationship.rb | 6 ++++++ db/schema.rb | 4 ++-- 3 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 db/migrate/20230728052532_require_parent_and_child_on_enterprise_relationship.rb diff --git a/app/models/enterprise_relationship.rb b/app/models/enterprise_relationship.rb index 30bddcc31d..e76429c7e5 100644 --- a/app/models/enterprise_relationship.rb +++ b/app/models/enterprise_relationship.rb @@ -1,11 +1,12 @@ # frozen_string_literal: true class EnterpriseRelationship < ApplicationRecord + self.belongs_to_required_by_default = true + belongs_to :parent, class_name: 'Enterprise', touch: true belongs_to :child, class_name: 'Enterprise', touch: true has_many :permissions, class_name: 'EnterpriseRelationshipPermission', dependent: :destroy - validates :parent, :child, presence: true validates :child_id, uniqueness: { scope: :parent_id, message: I18n.t('validation_msg_relationship_already_established') diff --git a/db/migrate/20230728052532_require_parent_and_child_on_enterprise_relationship.rb b/db/migrate/20230728052532_require_parent_and_child_on_enterprise_relationship.rb new file mode 100644 index 0000000000..c76411c5ec --- /dev/null +++ b/db/migrate/20230728052532_require_parent_and_child_on_enterprise_relationship.rb @@ -0,0 +1,6 @@ +class RequireParentAndChildOnEnterpriseRelationship < ActiveRecord::Migration[7.0] + def change + change_column_null :enterprise_relationships, :parent_id, false + change_column_null :enterprise_relationships, :child_id, false + end +end diff --git a/db/schema.rb b/db/schema.rb index 17d9f51edb..89ffb1ea23 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -167,8 +167,8 @@ ActiveRecord::Schema[7.0].define(version: 2023_08_09_201542) do end create_table "enterprise_relationships", id: :serial, force: :cascade do |t| - t.integer "parent_id" - t.integer "child_id" + t.integer "parent_id", null: false + t.integer "child_id", null: false t.index ["child_id"], name: "index_enterprise_relationships_on_child_id" t.index ["parent_id", "child_id"], name: "index_enterprise_relationships_on_parent_id_and_child_id", unique: true t.index ["parent_id"], name: "index_enterprise_relationships_on_parent_id"