在NestJS中创建生成并执行PostgreSQL的TypeORM Migration

本文详细介绍了如何在NestJS应用中利用TypeORM创建和执行针对PostgreSQL数据库的迁移。内容包括配置TypeORM实体、同步数据库、设置迁移路径、生成和运行迁移、显示和应用迁移、回滚迁移等步骤,旨在教你如何管理和更新数据库结构。
摘要由CSDN通过智能技术生成

在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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小涵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值