I'm using NestJs + TypeORM with synchronise enabled.
I have 2 entities:
item
import { Entity } from 'typeorm';
import { BaseEntityUUID } from '../../common/entities/base-string.entity';
@Entity('items')
export class ItemEntity extends BaseEntityUUID {
}
and inventory
import { Column, Entity, ManyToOne } from 'typeorm';
import { BaseEntity } from '../../common/entities/base.entity';
import { ItemEntity } from '../../items/entities/item.entity';
import { GameUserEntity } from './game-user.entity';
@Entity('inventory-items')
export class InventoryItemEntity extends BaseEntity {
@Column()
gameUserId: string;
@Column()
itemId: string;
@ManyToOne(() => ItemEntity, {onUpdate: 'CASCADE', onDelete: 'CASCADE'})
item?: ItemEntity;
@Column()
count: number;
@ManyToOne(() => GameUserEntity, user => user.id, {onUpdate: 'CASCADE', onDelete: 'CASCADE'})
gameUser?: GameUserEntity;
}
I need to add new column to Item, so i modify ItemEntity like that:
import { Column, Entity } from 'typeorm';
import { BaseEntityUUID } from '../../common/entities/base-string.entity';
@Entity('items')
export class ItemEntity extends BaseEntityUUID {
@Column({ default: 0 })
levelRequired: number;
}
, but all records from Inventory are deleted after that. All records from Items are updated with levelRequired: 0, but why all related records from Inventory are erased?