在NestJS中创建生成并执行PostgreSQL的TypeORM Migration
目录
推荐超级课程:
您想使用TypeORM从实体创建、运行和生成 Migration吗?在这个Nest.js TypeORM Migration示例指南中,您将学到:
- 如何在NestJS中使用PostgreSQL创建TypeORM Migration
- 创建一个实体,TypeORM用来运行 Migration
- 创建TypeORM Migration的步骤
- 使用TypeORM生成 Migration
- 显示所有 Migration
- 应用 Migration
- 回滚和撤销 Migration
- 运行待处理的 Migration
- 了解TypeORM数据库同步
- 如何手动生成、运行和应用TypeORM NestJS Migration。
- 撤销上一个 Migration。
先决条件
要在Nest.js中使用TypeORM Migration,请确保您具备以下内容:
- 在计算机上安装了Node.js。
- 在计算机上安装了PostgreSQL。
- 对使用NestJS和TypeORM有一些基本了解将是一个额外的优势。
配置TypeORM Migration实体与PostgreSQL
实体使用TypeORM需要创建数据库表(在运行NOSQL数据库时会创建集合)的类和装饰器。简化起见,实体定义了数据的模式和结构。
您的 Migration将使用一个实体,让TypeORM在您的PostgreSQL上完成它的工作。因此,要让TypeORM从实体生成 Migration,请按以下方式创建一个:
-
确保您已安装Nest.js CLI:
npm install -g @nestjs/cli
-
设置您的Nest.js应用程序:
nest new task_app_api
-
安装核心TypeORM Migration依赖项和pg用于PostgreSQL包:
npm install --save @nestjs/typeorm typeorm @nestjs/config pg
-
准备好您的模块
nest g module task
nest g service task --no-spec
nest g controller task --no-spec
要配置一个实体,创建一个task.entity.ts
文件在src/task
目录中。此文件将承载tasks
表的配置。现在使用TypeORM实体表示您的 Migration表如下:
import {
Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity("tasks")
export class Task {
@PrimaryGeneratedColumn()
id: number;
@Column()
title: string;
@Column()
description: string;
@Column({
default: false })
isCompleted: boolean;
}
TypeORM将在您的模块中访问这个实体。转到src/task/task.module.ts
,按如下方式导入和配置TypeOrmModule
:
// 导入模块和组件
import {
Module } from '@nestjs/common';
import {
TaskService } from './task.service';
import {
TaskController } from './task.controller';
// TypeOrmModule创建数据库集成
import {
TypeOrmModule } from '@nestjs/typeorm';
// 您的Task实体类
import {
Task } from './task.entity';
@Module({
// 创建一个导入模块
// 将TypeOrmModule添加到Task实体
imports: [TypeOrmModule.forFeature([Task])],
providers: [TaskService]