본문 바로가기
프로그래밍/TypeORM

[TypeORM] DataSource API

by YuminK 2023. 8. 30.

https://orkhan.gitbook.io/typeorm/docs/data-source-api

dataSource.isInitialized
데이터소스 초기화와 데이터베이스 연결, 커넥션 풀 여부

dataSource.driver
데이터 소스에서 사용된 기본 DB 드라이버

dataSource.manager
엔티티 매니저

dataSource.mongoManager
몽고DB 매니저

await dataSource.initialize()
데이터소스 초기화, DB 커넥션 풀을 연다.

await dataSource.destroy()
데이터 소스 종료 및 모든 DB커넥션을 종료한다.
주로 어플리케이션 종료시 사용

await dataSource.synchronize()
데이터베이스 스키마를 동기화한다. 
데이터소스 옵션에서 true로 설정되어 있을 때, 해당 메소드를 호출한다.
주로 어플리케이션 실행시 시작된다. 

await dataSource.dropDatabase()
모든 DB와 데이터를 날린다. 프로덕션에서 사용하는 것을 주의할 것.
커넥션 연결 이후에만 사용할 수 있다.

await dataSource.runMigrations()
모든 팬딩 마이그래이션을 처리한다.

await dataSource.undoLastMigration()
마지막으로 실행된 마이그래이션을 되돌린다. 

if (dataSource.hasMetadata(User))
    const userMetadata = dataSource.getMetadata(User)
hasMetadata - 주어진 엔티티에 메타데이터가 등록되었는지 여부를 파악한다.
getMetadata - 주어진 엔티티에 메타데이터를 얻는다. 테이블 이름을 구체화할 수 있다.

const repository = dataSource.getRepository(User)
주어진 엔티티에서 레포지토리를 얻는다. 

const repository = dataSource.getTreeRepository(Category)
주어진 엔티티에서 트리 레포지토리를 얻는다.

const repository = dataSource.getMongoRepository(User)
주어진 엔티티에서 몽고레포지토리를 얻는다.

await dataSource.transaction(async (manager) => {
    // NOTE: you must perform all database operations using given manager instance
    // its a special instance of EntityManager working with this transaction
    // and don't forget to await things here
})

다양한 DB 요청을 처리하기 위해 단일 DB 트랜잭션을 제공한다.

await dataSource.query(`SELECT * FROM USERS`)
SQL 쿼리를 처리한다.

const users = await dataSource
    .createQueryBuilder()
    .select()
    .from(User, "user")
    .where("user.name = :name", { name: "John" })
    .getMany()

쿼리빌드를 생성한다. 

'프로그래밍 > TypeORM' 카테고리의 다른 글

[TypeORM] Entity Inheritance  (0) 2023.08.31
[TypeORM] Embedded Entities  (0) 2023.08.31
[TypeORM] Eager and Lazy Relations  (0) 2023.08.31
[TypeORM] What is EntityManager and Repository  (0) 2023.08.31
[TypeORM] Working with DataSource  (0) 2023.08.30

댓글