ecetc商务网站建设工程师,如何推广app,建一个营销网站的步骤,深圳创业补贴政策2021申请条件在nestjs中进行typeorm cli迁移(migration)的配置
在学习nestjs过程中发现typeorm的迁移配置十分麻烦,似乎许多方法都是旧版本的配置#xff0c;无法直接使用. 花了挺长时间总算解决了这个配置问题.
db.config.ts
先创建db.config.ts, 该文件export了两个对象#xff0c;其…在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的dataSourcetypeorm: 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的前端相关电子书《前端面试宝典附答案和解析》难点、重点知识视频教程全套。 有需要的小伙伴可以点击下方卡片领取无偿分享