• 使用 CLI
    • 关于TypeScript编写实体的说明
    • 初始化一个新的TypeORM项目
    • 创建一个新实体
    • 创建一个新订阅者
    • 创建新迁移
    • 从现有表结构生成迁移
    • 运行迁移
    • 还原迁移
    • 同步数据库架构
    • 记录同步数据库架构查询而不运行
    • 删除数据库架构
    • 运行任意SQL查询
    • 清除缓存
    • 检查版本

    使用 CLI

    关于TypeScript编写实体的说明

    此 CLI 工具使用 javascript 编写,并在 node 上运行。如果你的实体文件是 TypeScript 编写,则需要在使用 CLI 之前将它们转换为 javascript。如果只使用 javascript,则可以跳过此部分。

    全局安装 ts-node:

    你可以在项目中设置 ts-node 以简化操作,如下所示:

    1. npm install -g ts-node

    在 package.json 中的 scripts 下添加 typeorm 命令

    1. "script" {
    2. ...
    3. "typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js"
    4. }

    然后运行如下命令:

    1. npm run typeorm migration:run

    如果你需要将带有破折号的参数传递给 npm 脚本,则需要在--之后添加。例如,如果需要生成,则命令如下:

    1. npm run typeorm migration:generate -- -n migrationNameHere

    初始化一个新的TypeORM项目

    你可以使用已设置的所有内容创建新项目:

    1. typeorm init

    它使用 TypeORM 创建基本项目所需的所有文件:

    • .gitignore
    • package.json
    • README.md
    • tsconfig.json
    • ormconfig.json
    • src/entity/User.ts
    • src/index.ts

    然后你可以运行npm install来安装所有依赖项。 一旦安装了所有依赖项,你需要修改ormconfig.json并插入您自己的数据库设置。 之后,可以通过运行npm start来运行您的应用程序。

    所有文件都在当前目录中生成。 如果要在特殊目录中生成它们,可以使用--name

    1. typeorm init --name my-project

    要指定使用的特定数据库,可以使用--database

    1. typeorm init --database mssql

    你还可以使用 Express 生成基础项目:

    1. typeorm init --name my-project --express

    如果你使用的是 docker,可以使用以下命令生成docker-compose.yml文件:

    1. typeorm init --docker

    typeorm init是设置 TypeORM 项目最简单,最快捷的方法。

    创建一个新实体

    你可以使用 CLI 创建新实体:

    1. typeorm entity:create -n User

    其中User是实体文件和类名。 运行该命令将在项目的entitiesDir中创建一个新的空实体。 要设置项目的entitiesDir,你必须在连接选项中添加它:

    1. {
    2. cli: {
    3. entitiesDir: "src/entity"
    4. }
    5. }

    学习更多关于 connection options.

    如果多个目录中具有多个实体的多模块项目结构,则需要提供 CLI 生成实体目录的路径:

    1. typeorm entity:create -n User -d src/user/entity

    学习更多关于 entities.

    创建一个新订阅者

    可以使用 CLI 创建新订阅者:

    1. typeorm subscriber:create -n UserSubscriber

    其中UserSubscriber是订阅者文件和类名。 执行以下命令将在项目的subscribersDir中创建一个新的空订阅者。 要设置subscribersDir,首先必须在连接选项中添加它:

    1. {
    2. cli: {
    3. subscribersDir: "src/subscriber"
    4. }
    5. }

    了解有关连接选项的更多信息。 如果你有一个不同目录中有多个订阅用户的多模块结构的项目,可以给 CLI 命令提供相应的路径,然后在其中生成 subscriber:

    1. typeorm subscriber:create -n UserSubscriber -d src/user/subscriber

    了解有关Subscribers的更多信息。

    创建新迁移

    你可以使用 CLI 创建新的迁移:

    1. typeorm migration:create -n UserMigration

    其中UserMigration是一个迁移文件和类名。 运行该命令将在项目的migrationsDir中创建一个新的空迁移。 要设置migrationsDir,首先必须在连接选项中添加它:

    1. {
    2. cli: {
    3. migrationsDir: "src/migration"
    4. }
    5. }

    了解有关连接选项的更多信息。 如果你有一个在不同目录中具有多个迁移的多模块结构的项目,则可以提供要生成迁移的 CLI 命令的路径:

    1. typeorm migration:create -n UserMigration -d src/user/migration

    了解有关Migrations的更多信息。

    从现有表结构生成迁移

    自动迁移生成会创建新的迁移文件并编写必须执行的所有 sql 查询以更新数据库。

    1. typeorm migration:generate -n UserMigration

    根据经验,在每次实体更改后生成迁移。

    了解有关Migrations的更多信息。

    运行迁移

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

    1. typeorm migration:run

    了解有关 Migrations的更多信息。

    还原迁移

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

    1. typeorm migration:revert

    此命令将仅撤消上次执行的迁移。 你可以多次执行此命令以还原多个迁移。 了解有关Migrations的更多信息。

    同步数据库架构

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

    1. typeorm schema:sync

    在生产环境中请谨慎运行此命令。如果冒失的使用它,则可能会导致数据库同步时数据丢失。在部署生产环境之前,检查将运行哪些 sql 查询。

    记录同步数据库架构查询而不运行

    要检查将要运行的 sql 查询,请使用schema:sync

    1. typeorm schema:log

    删除数据库架构

    要完全删除数据库架构,请使用以下命令:

    1. typeorm schema:drop

    在生产环境时要谨慎使用这个命令,因为它会完全删除数据库中的数据。

    运行任意SQL查询

    你可以使用以下命令直接在数据库中执行想要的任何 SQL 查询:

    1. typeorm query "SELECT * FROM USERS"

    清除缓存

    如果你使用QueryBuilder缓存,有时可能希望清除缓存中存储的所有内容。 则可以使用以下命令执行此操作:

    1. typeorm cache:clear

    检查版本

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

    1. typeorm version