Typeorm Migration для самостоятельной миграции - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь создать миграцию для самореферентной модели, как описано здесь в документе TypeOrm

https://github.com/typeorm/typeorm/blob/master/docs/relations-faq.md#how -to-create-self-referencing-Relations

Но Как я могу создать миграцию для этих самоссылающихся отношений здесь:

Я получил модель:

import {Entity, PrimaryGeneratedColumn, Column, ManyToOne, OneToMany} from "typeorm";

@Entity()
export class Category {

    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    title: string;

    @Column()
    text: string;

    @ManyToOne(type => Category, category => category.childCategories)
    parentCategory: Category;

    @OneToMany(type => Category, category => category.parentCategory)
    childCategories: Category[];

}

И моя миграция выглядит так:

export class createCategoryTable1576071180569 implements MigrationInterface {
    public async up(queryRunner: QueryRunner): Promise<any> {
        await queryRunner.createTable(
            new Table({
                name: 'category',
                columns: [
                    { name: 'id', type: 'int', isPrimary: true, isGenerated: true, generationStrategy: 'increment' },
                    { name: 'text', type: 'varchar' },
                    { name: 'parentId', type: 'int' },
                    { name: 'childId', type: 'int' },
                ],
            }),
            true,
        );

        await queryRunner.createForeignKey(
            'category',
            new TableForeignKey({
                columnNames: ['parentId'],
                referencedColumnNames: ['id'],
                referencedTableName: 'category',
                onDelete: 'CASCADE',
            }),
        );
}

I думаю, что все в порядке, но как создать внешний ключ в миграции для дочерних категорий, поскольку предполагается, что это массив категорий ???

...