📜  TypeORM-使用CLI(1)

📅  最后修改于: 2023-12-03 14:48:04.554000             🧑  作者: Mango

TypeORM-使用CLI

TypeORM 是一个用 TypeScript 编写的 ORM(Object-Relational Mapping,对象关系映射)库,支持多种数据库(例如 MySQL、PostgreSQL、MongoDB 等),提供了非常便捷的数据操作方式。CLI(Command Line Interface,命令行界面)是 TypeORM 的命令行工具,可以帮助开发者快速生成数据库表结构及其他一些常见操作。

安装

首先需要全局安装 TypeORM CLI:

npm install typeorm -g
初始化项目

TypeORM CLI 可以快速初始化一个项目,并支持创建不同类型的项目。以下命令将初始化一个空的 TypeScript 项目:

typeorm init --name project-name --database mysql

其中,project-name 是项目名称,mysql 是指定数据库类型。CLI 支持的数据库类型可以通过 typeorm --help 命令查看。

生成数据实体

在 TypeORM 中,实体等价于数据库中表的概念。CLI 可以帮助我们快速生成实体。

以下命令将在项目中创建一个名为 User 的实体:

typeorm entity:create -n User

其中,-n 用于指定实体名称。

执行以上命令后,CLI 将在项目中创建一个 src/entity/User.ts 文件,其中包含了一个名为 User 的类,该类将映射到数据库中的一个表。

生成迁移脚本

在 TypeORM 中,通过迁移脚本可以方便地更新数据库表结构。CLI 可以帮助我们快速生成迁移脚本。

以下命令将生成一个名为 CreateUser 的迁移脚本:

typeorm migration:create -n CreateUser

执行以上命令后,CLI 将在项目中创建一个 src/migration/<timestamp>-CreateUser.ts 文件,其中 <timestamp> 是时间戳,表示创建时间。

在生成的迁移脚本中,我们可以使用 TypeORM 提供的各种方法来修改数据库表结构。例如,以下代码将在数据库中创建一个名为 user 的表:

import {MigrationInterface, QueryRunner} from "typeorm";

export class CreateUser1626958684586 implements MigrationInterface {
    public async up(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`CREATE TABLE \`user\` (
            \`id\` int(11) NOT NULL AUTO_INCREMENT,
            \`name\` varchar(255) NOT NULL,
            \`email\` varchar(255) NOT NULL,
            PRIMARY KEY (\`id\`)
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4`);
    }

    public async down(queryRunner: QueryRunner): Promise<void> {
        await queryRunner.query(`DROP TABLE \`user\``);
    }
}
运行迁移脚本

当我们生成了一个或多个迁移脚本后,就可以通过 CLI 来运行它们来更新数据库表结构。

以下命令将运行所有还未运行的迁移脚本:

typeorm migration:run

如果想要撤销前一个迁移脚本,可以使用以下命令:

typeorm migration:revert
总结

TypeORM CLI 是一个非常方便的工具,可以帮助我们快速生成各种数据库相关的代码,提高开发效率。以上只是 TypeORM CLI 的部分功能,更多功能可以通过 typeorm --help 命令查看。