跳转到主要内容

使用CLI

安装CLI

如果实体文件是JavaScript

如果您有一个本地的TypeORM版本,请确保它与我们将要安装的全局版本匹配。

您可以使用 npm i -g typeorm 在全局安装TypeORM CLI。 您还可以选择使用 npx typeorm <params> 每个命令,如果您不希望安装它。

如果实体文件是TypeScript

这个CLI工具是用JavaScript编写的,要在node上运行。如果您的实体文件是TypeScript的,您需要在使用CLI之前将它们编译为JavaScript。如果您只使用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。根据您安装CLI的方式,您可以将命令开头的 typeorm 替换为 npx typeormnpm run typeorm

初始化一个新的TypeORM项目

您可以使用CLI创建一个已经设置好的新项目:

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

了解更多关于订阅者

创建新迁移

您可以使用CLI创建一个新的迁移:

typeorm migration:create path-to-migrations-dir/migrationName

了解更多关于迁移

从现有表模式生成迁移

自动生成迁移会创建一个新的迁移文件,并写入必须执行的所有SQL查询来更新数据库。

如果没有生成任何更改,该命令将以1的代码退出。

typeorm migration:generate path/to/Migration -d path/to/datasource

规则是在每次更改实体后生成一个迁移。 -d 参数的值应指定您的DataSource实例定义的路径。 您可以使用第一个参数指定迁移的路径和名称。

了解更多关于迁移

运行迁移

要执行所有未执行的迁移,请使用以下命令:

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

了解更多关于迁移

回滚迁移

要回滚最近执行的迁移,请使用以下命令:

typeorm migration:revert -- -d path-to-datasource-config

此命令只会撤销最后执行的迁移。 您可以多次执行此命令以回滚多个迁移。 了解更多关于迁移

显示迁移

要显示所有迁移以及它们是否已运行,请使用以下命令:

typeorm migration:show  -- -d path-to-datasource-config

[X] = 迁移已运行

[ ] = 迁移待处理/未应用

同步数据库模式

要同步数据库模式,请使用以下命令:

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