📅  最后修改于: 2023-12-03 14:48:04.554000             🧑  作者: Mango
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
命令查看。