sql >> Database >  >> RDS >> PostgreSQL

TypeORM voorwaardelijke nullable?

Het korte antwoord is nee, niet op TypeORM-niveau. U kunt dit echter bereiken in uw toepassingscode met behulp van de ValidateIf decorateur van class-validator :

@Column({ nullable: true })
@Exclude()
@IsNotEmpty()
@ValidateIf(u => !u.oAuthLogins || u.oAuthLogins.length === 0)
public password?: string;

@JoinColumn()
@IsArray()
@ValidateIf(u => !u.password)
@OneToMany(() => OAuthLogin, (provider: OAuthLogin) => provider.user, {
cascade: true,
})
public oAuthLogins?: OAuthLogin[];

Elders in uw aanvraag:

import { validate } from 'class-validator';
...
validate(user)

Als deze entiteit een controller kruist, kun je ook de ValidationPipe van NestJS gebruiken om dit af te dwingen bij de controller of applicatie niveau:

// main.ts
app.useGlobalPipes(new ValidationPipe({ whitelist: true }));



  1. Het laten vallen van een index met psycopg2 wordt van kracht voor of na de commit?

  2. Hoe leeftijd (in jaren) te berekenen op basis van geboortedatum en getDate()

  3. MySQL-functies aanroepen in lithium

  4. ruby postgreSQL op AMD64