TypeORM: определить отношение в миграции - PullRequest
0 голосов
/ 16 января 2020

Привет, я читаю документы TypeORM и пытаюсь реализовать отношения, как показано здесь. Я пытаюсь создать модель History, которая относится к каждому пользователю, чтобы у каждого пользователя была множественная история.

Я читаю это и использую это. пример:

https://github.com/typeorm/typeorm/blob/master/docs/many-to-one-one-to-many-relations.md

Но после попытки его реализации я получаю столбец userId для истории модели не существует ??

Кто-нибудь знает в чем может быть проблема?

Я предполагаю, что мне следует добавить отношение в файл миграции для моей Модели, но я не вижу ничего из этого в документации?

1 Ответ

1 голос
/ 18 января 2020

В queryRunner есть метод с именем createForeignKey. В файле миграции, где вы создаете таблицу, это может выглядеть так:

export class ExampleMigration implements MigrationInterface {
  public async up(queryRunner: QueryRunner): Promise<any> {
    await queryRunner.createTable(
      new Table({
        name: 'stuff',
        columns: [
          {
            name: 'id',
            type: 'uuid',
            isPrimary: true
          },
          {
            name: 'userId',
            type: 'uuid'
          }
        ]
      })
    );

    await queryRunner.createForeignKey(
      'stuff',
      new TableForeignKey({
        columnNames: ['userId'],
        referencedTableName: 'users',
        referencedColumnNames: ['id']
      })
    );
  }

  public async down(queryRunner: QueryRunner): Promise<any> {
    await queryRunner.dropTable('userSessions');
  }
}
...