typeorm

typeorm 500 error for select from repository

Не забывайте, что если вы делаете инъекцию реопизтория. напр:

@Injectable()
export class ScenarioService {
  @InjectRepository(ScenarioRepository)
  private scenarioRepository: ScenarioRepository;
// ..........

то в конфигурации модуля (главного или одно из вложенных, отвечающих за запуск typeorm), необходимо использовать forFeature(), где и перечислить имеющиеся репозитории (в случае если весь проект представле одним модулем, то можно так напр. так)

nestjs src/ Копируется в dist/

При выполнеии команды:

npm run start:debug

в случае, если что-то еще лежит на одном уровне c папкой src/ (в нашем случае это была папка migrations/) мы получаем копирование в dist не только всего содержимого src, но и дополнительно src со всем содержимым, т.е. фактически дублирование, напр.:

typeorm Составной первичный (Primary Key)

Как минимум, можно использовать отдельный составной уникальный индекс.

Или чтобы это действитлеьно был составной ключ, можно использовать @PrimaryColumn() на каждой колонке, которая должна входить в первичый ключ, даже в комбинации с другими декораторами, например:

typeorm schema:log Вывести SQL, который будет применен при создании мигации/синхронизации

Используйте команду schema:log, которая позволяет посмотреть SQL, который по мнению typeorm нужно применить, что привести вашу БД в соответствие с текущем описанием моделей (enitites).

Этот же SQL будет использован в команде генерации миграции migration:generate (если конфигурации запуска этих команд совпадают)

typeorm Property ... has no initializer and is not definitely assigned in the constructor

Property ... has no initializer and is not definitely assigned in the constructor

Наиболее простое решение порблемы - выставить:

"strictPropertyInitialization": false

в tsconfig.json

Источник идеи: https://stackoverflow.com/a/50241920

typeorm logging all cli Не работает в консольных командах

Пример конфига:

{
// ..........
    synchronize: false,
    migrationsTableName: 'custom_migration_table',
    migrations: ['migrations/*.ts'],
    cli: {
      migrationsDir: 'migrations',
    },
    logging: 'all',
  };

}

судя по отладке кода, эта опция игнорируется (специально переопределяется в коде команды в пакете на false, как минимум для команды migration:generate), что конечно не особо удобно.

Проверял для версии:

"typeorm": "^0.2.38"

typeorm No changes in database schema were found // Опция synchronize: false

В ответ на комаду migration:generate, получаем:

No changes in database schema were found - cannot generate a migration. To create a new empty migration use "typeorm migration:create" command

В моем случае объект конфигурации был таким (распечатка):

typeorm Пример кода миграции

Пример создание и у удаления таблицы (пострес):

import { MigrationInterface, QueryRunner } from 'typeorm';

export class StudetsTest1634028529814 implements MigrationInterface {
  public async up(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(
      `CREATE TABLE students (
            student_id  BIGSERIAL,
            student_name CHAR(100),
            student_age INT
        );`,
    );
  }

  public async down(queryRunner: QueryRunner): Promise<void> {
    await queryRunner.query(`DROP TABLE students;`);
  }
}

typeorm SyntaxError: Cannot use import statement outside a module (nestjs)

import { MigrationInterface, QueryRunner } from 'typeorm';
^^^^^^

SyntaxError: Cannot use import statement outside a module

-- ошибка возникает в файле миграции, после запуска проекта:

npm run start:debug

MigrationInterface Cannot use import statement outside a module

Возможное решение

Используйте __dirname для указания пути относительно файла конфига.

Материлы по теме

typeorm No migrations are pending Ошибка решение

No migrations are pending

Возникает, если движок не может найти не применные файлы миграций (или вообще никакие файлы).

Возможная причина и решение

Для typescript ошибка обычно правится тем, что изменяем:

migrations: ['src/migrations/*.js'],

на:

migrations: ['src/migrations/*.ts'],

в объекте конфигурации typeorm

Pages

Subscribe to RSS - typeorm