当前位置: 首页 > news >正文

建设银行集团网站首页武汉网站建设公司

建设银行集团网站首页,武汉网站建设公司,重庆网站建设公司 十年,池州网站建设怎么样在nestjs中进行typeorm cli迁移(migration)的配置 在学习nestjs过程中发现typeorm的迁移配置十分麻烦,似乎许多方法都是旧版本的配置,无法直接使用. 花了挺长时间总算解决了这个配置问题. db.config.ts 先创建db.config.ts, 该文件export了两个对象,其…

在nestjs中进行typeorm cli迁移(migration)的配置

在学习nestjs过程中发现typeorm的迁移配置十分麻烦,似乎许多方法都是旧版本的配置,无法直接使用. 花了挺长时间总算解决了这个配置问题.

db.config.ts

先创建db.config.ts, 该文件export了两个对象,其中一个对象(ormConfig)用于 nestjs 使用,另一个对象(ormConfigForCli)给 typeormcli 使用。

两个对象基本配置相同,主要是查询的entities文件不同

  • ormConfig去,dist文件夹下查找entity, 因为nestjs最终运行的是打包好的entity.js文件
  • 而ormConfigForCli则可以直接运行编写好的文件, 因此会在源代码中查找entity.ts文件
import { DataSource, DataSourceOptions } from 'typeorm';// 基础配置
const baseConfig: DataSourceOptions = {type: 'mysql',host: 'localhost',port: 3306,username: 'root',password: '123456',database: 'test',
};// 该对象用于 nestjs typeorm 初始化
export const ormConfig: DataSourceOptions = {...baseConfig,entities: ['dist/**/entities/*.entity{.js,.ts}'],
};// 该对象 typeorm cli 迁移时使用
const ormConfigForCli: DataSourceOptions = {...baseConfig,entities: ['src/**/entities/*.entity{.js,.ts}'],migrations: ['migrations/*{.js,.ts}'], // migration:run时查找的文件夹subscribers: ['subscribers/*{.js,.ts}'],logger: 'file',logging: true,
};// 实例化dataSource,用以之后cli使用
const dataSource = new DataSource(ormConfigForCli);// 此处的dataSource需要 export default才可以使用
export default dataSource; 

nestjs中配置

类似官方文档中的方式, 直接作为forRoot的参数即可. 文档

app.module.ts

import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { ormConfig } from './config/db.config';@Module({imports: [TypeOrmModule.forRoot(ormConfig)],
})
export class AppModule {} 

package.json配置

首先需要在package.json配置脚本

 "scripts": {// ...// 此处 -d 表示 -dataSource, 也就是db.config.ts中export的dataSource"typeorm": "typeorm-ts-node-esm -d ./src/config/db.config.ts","migration:generate": "npm run typeorm -- migration:generate","migration:run": "npm run typeorm -- migration:run","migration:revert": "npm run typeorm -- migration:revert"}, 

需要注意的是,新版本typeorm对于commonjs和esm有两个不同的命令,本文中使用的是esm,所以使用typeorm-ts-node-esm, commonjs可以使用typeorm-ts-node-commonjs,具体可查看文档

使用脚本进行迁移

配置完毕后,就可以使用命令行了. 该命令会将迁移的文件输出至根目录的migrations文件夹下, 并生成 <时间戳>-alert-users-table.ts 迁移文件.

npm run migration:generate .\migrations\alert-users-table 

需要注意的是,migration:generate的path为必须参数, 若是忘记添加会报错:缺少 non-option 参数:传入了 0 个, 至少需要 1 个

通过migration:run命令就可以执行此次迁移了, 迁移命令是根据之前db.config.ts中的migrations选项查找迁移文件的

npm run migration:run 

通过migration:revert可以撤销迁移

npm run migration:revert 

文件层级结构

├─dist
├─src
│├─config
││└─db.config.ts
│├─app.modules.ts
└─migrations
│└─ 1670661241977-alert-users-table.ts 

最后

为大家准备了一个前端资料包。包含54本,2.57G的前端相关电子书,《前端面试宝典(附答案和解析)》,难点、重点知识视频教程(全套)。



有需要的小伙伴,可以点击下方卡片领取,无偿分享

http://www.wooajung.com/news/27775.html

相关文章:

  • 嘉兴网站制作维护收录之家
  • 免费网课关键词优化公司哪家好
  • 十大设计网站排名百度浏览器打开
  • 北京网站优化前景百度排行榜前十名
  • 做娱乐网站需要哪些东莞企业网站推广
  • 长沙公司做网站的价格西安百度seo排名
  • 普陀区网站建设南京百度推广优化
  • 淘客网站cms怎么做seo最新快速排名
  • 广告公司简介100字seo推广价格
  • 哪一个网站有做实验的过程网站查询网
  • 什么网站可以发布有偿做项目西安网
  • 佛山网站制作哪个好薇成都网络营销
  • 无锡网站怎么做广州seo实战培训
  • 网站建设与应用教案市场营销网络
  • 一个域名一个主机可以做两个网站吗上海野猪seo
  • 兼职 做网站长沙seo关键词
  • 信融科技做网站推广可靠吗一键优化大师
  • 国外免费服务器申请seo运营培训
  • 重庆企业服务建站网站开发佛山网站建设技术托管
  • wordpress网站被劫持重定向seo快速排名是什么
  • 做网站优化需要多少钱网站优化外包价格
  • 网站建设 销售提成阿里云万网域名查询
  • 东莞网站优化方案海南百度推广公司有哪些
  • 深圳 网站设计营销推广公司
  • 网站制作 需要什么网络技术百度搜索风云榜排行榜
  • 网站建站行业公司主页建设天津百度推广网络科技公司
  • 做纸巾定制的网站新闻早知道
  • 网站建设技术手段南京百度网站快速优化
  • 网站建设与管理课程心得体会中文网站排名
  • flash做网站通栏每日新闻快报