跳至主内容区

使用 CLI

非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

安装 CLI

当实体文件使用 JavaScript 时

如果本地已安装 TypeORM,请确保其版本与即将全局安装的版本一致。

可通过 npm i -g typeorm 全局安装 TypeORM。 若不想全局安装,也可在每个命令前使用 npx typeorm <params>

当实体文件使用 TypeScript 时

此 CLI 工具基于 JavaScript 编写,需在 Node 环境运行。若实体文件使用 TypeScript,需先将其编译为 JavaScript 方可使用 CLI。如仅使用 JavaScript 可跳过本节。

可通过配置 ts-node 简化操作:

安装 ts-node:

npm install ts-node --save-dev

在 package.json 的 scripts 部分添加 typeorm 命令

"scripts": {
...
"typeorm": "typeorm-ts-node-commonjs"
}

对于 ESM 项目请改用:

"scripts": {
...
"typeorm": "typeorm-ts-node-esm"
}

如需加载其他模块(如 module-alias),可追加多个 --require my-module-supporting-register

此后可通过以下方式运行命令:

npm run typeorm migration:run -- -d path-to-datasource-config

如何阅读文档?

为简化文档表述,后续章节示例均使用全局安装的 typeorm CLI。根据实际安装方式,可将命令开头的 typeorm 替换为 npx typeormnpm run typeorm

初始化新 TypeORM 项目

可通过以下命令创建完整配置的新项目:

typeorm init

该命令将创建 TypeORM 基础项目所需文件:

  • .gitignore

  • package.json

  • README.md

  • tsconfig.json

  • src/entity/User.ts

  • src/index.ts

运行 npm install 安装所有依赖。 随后可通过 npm start 启动应用。

所有文件默认生成在当前目录。 如需指定目录可使用 --name

typeorm init --name my-project

指定数据库类型使用 --database

typeorm init --database mssql

生成 ESM 基础项目使用 --module esm

typeorm init --name my-project --module esm

也可生成集成 Express 的基础项目:

typeorm init --name my-project --express

使用 Docker 时,可通过以下命令生成 docker-compose.yml 文件:

typeorm init --docker

typeorm init 是搭建 TypeORM 项目最便捷快速的方式。

创建新实体

使用 CLI 创建新实体:

typeorm entity:create path-to-entity-dir/entity

了解更多关于实体的内容。

创建新订阅者

使用 CLI 创建新订阅者:

typeorm subscriber:create path-to-subscriber-dir/subscriber

了解更多关于订阅者的内容。

管理迁移

  • typeorm migration:create - 创建 空迁移

  • typeorm migration:generate - 生成 迁移(比对实体与数据库架构差异)

  • typeorm migration:run - 执行 所有迁移

  • typeorm migration:revert - 回退 最近迁移

  • typeorm migration:show - 列出 所有迁移及其执行状态

了解更多关于迁移的内容。

同步数据库架构

要同步数据库架构,请使用:

typeorm schema:sync

在生产环境运行此命令时请谨慎——架构同步若使用不当可能导致数据丢失。在生产环境执行前请检查它将运行的 SQL 查询。

记录架构同步查询(不实际执行)

要查看 schema:sync 将运行的 SQL 查询而不实际执行,请使用:

typeorm schema:log

删除数据库架构

要完全删除数据库架构,请使用:

typeorm schema:drop -- -d path-to-datasource-config

在生产环境使用此命令时请格外小心,因为它会完全清除数据库中的所有数据。

运行任意 SQL 查询

您可以使用以下命令直接在数据库中执行任意 SQL 查询:

typeorm query "SELECT * FROM USERS"

清除缓存

如果您使用 QueryBuilder 缓存功能,有时可能需要清除缓存中的所有内容。您可以通过以下命令实现:

typeorm cache:clear

检查版本

您可以通过运行以下命令检查已安装的 typeorm 版本(包括本地和全局安装):

typeorm version