DataSource API
options
- 用于创建此 dataSource 的选项。 了解更多关于 DataSourceOptions。
const dataSourceOptions: DataSourceOptions = dataSource.options
isInitialized
- 表示 DataSource 是否已初始化并建立与数据库的初始连接/连接池。
const isInitialized: boolean = dataSource.isInitialized
driver
- 本 dataSource 中使用的底层数据库驱动。
const driver: Driver = dataSource.driver
manager
- 用于处理实体的EntityManager
。 了解更多关于 实体管理器和仓库。
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()