Skip to content

Bug: Inversed reference require CASCADE #53

Closed
@siggi-k

Description

@siggi-k

Inversed reference for detect junction table require CASCADE.

Input

title: Document
properties:
  id:
    type: integer
  labels:
    type: array
    readOnly: true
    description: Inversed reference for detect junction table documents2labels
    items:
      $ref: '#/components/schemas/Label'
title: Label
properties:
  id:
    type: integer
  documents:
    type: array
    readOnly: true
    description: Inversed reference for detect junction table documents2labels
    items:
      $ref: '#/components/schemas/Document'

Migration Actual

    public function safeUp()
    {
        $this->createTable('{{%documents2labels}}', [
            'document_id' => $this->integer()->notNull(),
            'label_id' => $this->integer()->notNull(),
        ]);
        $this->addPrimaryKey('pk_document_id_label_id', '{{%documents2labels}}', 'document_id,label_id');
        $this->addForeignKey('fk_documents2labels_document_id_documents_id', '{{%documents2labels}}', 'document_id', '{{%documents}}', 'id');
        $this->addForeignKey('fk_documents2labels_label_id_labels_id', '{{%documents2labels}}', 'label_id', '{{%labels}}', 'id');
    }

    public function safeDown()
    {
        $this->dropForeignKey('fk_documents2labels_label_id_labels_id', '{{%documents2labels}}');
        $this->dropForeignKey('fk_documents2labels_document_id_documents_id', '{{%documents2labels}}');
        $this->dropPrimaryKey('pk_document_id_label_id', '{{%documents2labels}}');
        $this->dropTable('{{%documents2labels}}');
    }

Migration Expected

    public function safeUp()
    {
        $this->createTable('{{%documents2labels}}', [
            'document_id' => $this->integer()->notNull(),
            'label_id' => $this->integer()->notNull(),
        ]);
        $this->addPrimaryKey('pk_document_id_label_id', '{{%documents2labels}}', 'document_id,label_id');
        $this->addForeignKey('fk_documents2labels_document_id_documents_id', '{{%documents2labels}}', 'document_id', '{{%documents}}', 'id', 'CASCADE');
        $this->addForeignKey('fk_documents2labels_label_id_labels_id', '{{%documents2labels}}', 'label_id', '{{%labels}}', 'id', 'CASCADE');
    }

    public function safeDown()
    {
        $this->dropForeignKey('fk_documents2labels_label_id_labels_id', '{{%documents2labels}}');
        $this->dropForeignKey('fk_documents2labels_document_id_documents_id', '{{%documents2labels}}');
        $this->dropPrimaryKey('pk_document_id_label_id', '{{%documents2labels}}');
        $this->dropTable('{{%documents2labels}}');
    }

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions