table을 생성하던 도중 아래와 같은 에러를 마주했습니다.
ERROR [TypeOrmModule] Unable to connect to the database. Retrying (2)...
QueryFailedError: Duplicate key name 'IDX_97672ac88f789774dd47f7c8be'
indexing을 위해 entity를 변경하다 발생했는데요,
예시와 함께 보겠습니다.
@Entity('users')
@Unique(['email'])
export class Users {
@PrimaryGeneratedColumn({ type: 'int', name: 'id' })
id: number;
@Index() // err
@Column('varchar', { name: 'email', length: 100, unique: true }) // err
email: string;
// ...
}
위 예시에서 문제되는 부분은 email입니다. email은 indexing을 위해 index decorator를 붙여놓은 상태입니다. 게다가 추가적으로 unique로 설정해두었는데요,
이 부분에서 에러가 발생합니다.
Error: Duplicate key name 'IDX_97672ac88f789774dd47f7c8be'
query: ROLLBACK
[Nest] 74850 - 10/12/2023, 11:05:58 PM ERROR [TypeOrmModule] Unable to connect to the database. Retrying (2)...
index decorator를 설정하기 위해서는 아래와 같이 고쳐주세요
@Entity('users')
@Unique(['email'])
export class Users {
@PrimaryGeneratedColumn({ type: 'int', name: 'id' })
id: number;
@Index({ unique: true })
@Column('varchar', { name: 'email', length: 100 })
email: string;
// ...
}