typescript - Hvordan konfigurere TypeORM i NestJS for å bruke Postgres-replikasjon?
Jeg har satt opp replikering for Postgres-databasen i AWS. Hvordan konfigurere TypeORM for å bruke lese-/skriverreplikater i NestJs.
Min nåværende kode ser slik ut. Hvordan kan jeg konvertere denne flere tilkoblingen til å bruke replikering.
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'postgres',
host: '127.0.0.1',
port: 5432,
username: 'user1',
password: 'pass1',
database: 'user1',
synchronize: true,
entities: ['src/**/*.entity{.ts,.js}'],
migrations: ['./src/migrations/*.ts'],
}),
TypeOrmModule.forRoot({
type: 'postgres',
name: 'read',
host: '127.0.0.2',
port: 5432,
username: 'user2',
password: 'pass2',
database: 'user2',
entities: ['src/**/*.entity{.ts,.js}'],
migrations: ['./src/migrations/*.ts'],
})
],
controllers: [HealthCheckController],
providers: [],
})
export class AppModule {}
bruker.modul.ts
@Module({
imports: [
TypeOrmModule.forFeature([UserEntity]),
],
exports: [],
controllers: [UserController],
})
export class UserModule {}
bruker.tjeneste.ts
@Injectable()
export class OnboardingService {
private readonly logger: Logger = new Logger(UserService.name);
public constructor(
@InjectRepository(UserEntity)
private readonly userEntityRepository: Repository<UserEntity>,
@InjectConnection()
private readonly connection: Connection,
) {}
Hvordan bruke slave/master-tilkobling i user.service.ts-filen?
Svar #1
For å konfigurere replikasjonsforbindelsesinnstillinger kan du gjøre:
@Module({
imports: [TypeOrmModule.forRoot({
type: 'postgres',
replication: {
master: {
host: '127.0.0.1',
port: 5432,
username: 'user1',
password: 'pass1',
database: 'user1',
},
slaves: [{
host: '127.0.0.2',
port: 5432,
username: 'user2',
password: 'pass2',
database: 'user2',
}]
},
entities: ['src/**/*.entity{.ts,.js}'],
migrations: ['./src/migrations/*.ts'],
synchronize: true,
})],
controllers: [HealthCheckController],
providers: [],
})
export class AppModule {}
For mer informasjon kan du sjekke: typeorm Replikasjon
