跳转到主要内容

DataSource API

  • options - 用于创建此 dataSource 的选项。 了解更多关于 DataSourceOptions
const dataSourceOptions: DataSourceOptions = dataSource.options
  • isInitialized - 表示 DataSource 是否已初始化并建立与数据库的初始连接/连接池。
const isInitialized: boolean = dataSource.isInitialized
  • driver - 本 dataSource 中使用的底层数据库驱动。
const driver: Driver = dataSource.driver
const manager: EntityManager = dataSource.manager
// 你可以调用 manager 方法,例如 find:
const users = await manager.find()
  • mongoManager - 用于处理 mongodb 数据源的实体的 MongoEntityManager。 有关 MongoEntityManager 的更多信息,请参阅 MongoDB 文档。
const manager: MongoEntityManager = dataSource.mongoManager
// 你可以调用 manager 或 mongodb-manager 特定方法,例如 find:
const users = await manager.find()
  • initialize - 初始化数据源并打开到数据库的连接池。
await dataSource.initialize()
  • destroy - 销毁 DataSource 并关闭所有数据库连接。 通常在应用程序关闭时调用此方法。
await dataSource.destroy()
  • synchronize - 同步数据库模式。当数据源选项中设置了 synchronize: true 时,它会调用此方法。 通常在应用程序启动时调用此方法。
await dataSource.synchronize()
  • dropDatabase - 删除数据库及其所有数据。 在生产环境中使用此方法要小心,因为此方法将清除所有数据库表及其数据。 只有在建立与数据库的连接后才能使用。
await dataSource.dropDatabase()
  • runMigrations - 运行所有待处理的迁移。
await dataSource.runMigrations()
  • undoLastMigration - 撤销最后执行的迁移。
await dataSource.undoLastMigration()
  • hasMetadata - 检查给定实体的元数据是否已注册。 了解更多关于 实体元数据
if (dataSource.hasMetadata(User))
const userMetadata = dataSource.getMetadata(User)
  • getMetadata - 获取给定实体的 EntityMetadata。 您还可以指定一个表名,如果找到具有该表名的实体元数据,它将被返回。 了解更多关于 实体元数据
const userMetadata = dataSource.getMetadata(User)
// 现在你可以获取关于 User 实体的任何信息
  • getRepository - 获取给定实体的 Repository。 您还可以指定一个表名,如果找到给定表的仓库,它将被返回。 了解更多关于 仓库
const repository = dataSource.getRepository(User)
// 现在你可以调用仓库方法,例如 find:
const users = await repository.find()
  • getTreeRepository - 获取给定实体的 TreeRepository。 您还可以指定一个表名,如果找到给定表的仓库,它将被返回。 了解更多关于 仓库
const repository = dataSource.getTreeRepository(Category)
// 现在你可以调用树仓库方法,例如 findTrees:
const categories = await repository.findTrees()
  • getMongoRepository - 获取给定实体的 MongoRepository。 此仓库用于 MongoDB 数据源中的实体。 了解更多关于 MongoDB 支持
const repository = dataSource.getMongoRepository(User)
// 现在你可以调用 mongodb 特定的仓库方法,例如 createEntityCursor:
const categoryCursor = repository.createEntityCursor()
const category1 = await categoryCursor.next()
const category2 = await categoryCursor.next()
  • transaction - 提供一个单一事务,在其中将在单个数据库事务中执行多个数据库请求。 了解更多关于 事务
await dataSource.transaction(async (manager) => {
// 注意:你必须使用给定的 manager 实例执行所有数据库操作
// 这是一个特殊的 EntityManager 实例,用于处理此事务
// 别忘了在这里等待事务
})
  • query - 执行原始 SQL 查询。
const rawData = await dataSource.query(`SELECT * FROM USERS`)
  • createQueryBuilder - 创建一个查询构建器,可以用来构建查询。 了解更多关于 QueryBuilder
const users = await dataSource
.createQueryBuilder()
.select()
.from(User, "user")
.where("user.name = :name", { name: "John" })
.getMany()
  • createQueryRunner - 创建一个查询运行器,用于管理和操作单个实际数据库数据源。 了解更多关于 QueryRunner
const queryRunner = dataSource.createQueryRunner()

// 在调用 connect 之后,你可以使用它的方法
// connect 将执行实际的数据库连接
await queryRunner.connect()

// .. 现在你可以使用 query runner 并调用它的方法

// 非常重要 - 一旦完成对它的操作,请不要忘记释放 query runner
await queryRunner.release()