使用 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 typeorm 或 npm 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