Вставка сущности Typeorm без синхронизации - PullRequest
0 голосов
/ 20 января 2020

Я использую TypeORM и Nest Js для работы с существующей базой данных MySql. Существует общая таблица, в которую я должен вставить записи, в которой есть автоинкрементный первичный ключ. Поскольку таблица является общей, у меня отключена синхронизация.

Когда я настраиваю свою сущность TypeORM с помощью декоратора @PrimaryGeneratedColumn, я получаю сообщение об ошибке, в котором говорится, что столбец «не имеет значения по умолчанию». Если я изменю декоратор на @Column, то получаю сообщение об ошибке, касающееся отсутствия первичного ключа.

Может кто-нибудь сказать мне, как я должен настроить свою сущность TypeORM, чтобы я мог вставить запись в таблицу с автоматическим инкрементный столбец, где синхронизация отключена?

ОБНОВЛЕНИЕ

Вот выдержка из таблицы MySql DDL:

CREATE TABLE IF NOT EXISTS tIntegrationItem (
    IntegrationItemID       mediumint AUTO_INCREMENT    NOT NULL,
    Description             varchar(200)                NOT NULL,
    CreatedDateTime         dateTime                    NOT NULL,
    PRIMARY KEY (IntegrationItemID)
) ENGINE=InnoDB;

Вот выдержка из сущности:

@Entity({ name: "tIntegrationItem" })
export class IntegrationItem {
    @PrimaryGeneratedColumn()
    integrationItemId : number;

    @Column()
    description : string;

    @Column()
    createdDateTime  : Date = new Date();
}

Вот ошибка, которую я получаю:

[Гнездо] 26248 - 22.01.2020, 14:18:43 [ExceptionsHandler] ER_NO_DEFAULT_FOR_FIELD: Поле 'IntegrationItemID' не имеет значения по умолчанию + 18075 мс QueryFailedError: ER_NO_DEFAULT_FOR_FIELD: Поле 'IntegrationItemID' не имеет значения по умолчанию

Ответы [ 2 ]

0 голосов
/ 22 января 2020

Возможно, проблема связана с именем столбца.

integrationItemId : number;

IntegrationItemID

0 голосов
/ 22 января 2020

Я переключил конфигурацию базы данных на другую базу данных, и приложение работало нормально. Я настроил приложение для работы с локальным экземпляром MySql, который не был правильно настроен. Однако я не знаю точной причины.

ОБНОВЛЕНИЕ

С тех пор я узнал, что моя локальная база данных не соответствует экземпляру сервера. Когда он был настроен, столбец первичного ключа не был настроен на автоматическое увеличение. * SMH *

...