首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeORM迁移给出的最大调用堆栈大小超过错误与Postgres

TypeORM迁移给出的最大调用堆栈大小超过错误与Postgres
EN

Stack Overflow用户
提问于 2022-09-19 19:42:11
回答 1查看 289关注 0票数 3

当我运行迁移时,会得到以下错误。最初,我在一个项目中实现了这一点--现在,我创建了一个新的空白项目,但仍然得到了错误。下面是ormconfig.ts:

代码语言:javascript
复制
import { DataSource } from 'typeorm';

const env = {
  "DB_HOST":"localhost",
  "DB_PORT":5432,
  "DB_USERNAME":"postgres",
  "DB_PASSWORD":"postgres",
  "DB_DATABASE":"task-management",
}

export const connectionSource = new DataSource({
  migrationsTableName: 'migrations',
  type: 'postgres',
  host: env.DB_HOST,
  port: env.DB_PORT,
  username: env.DB_USERNAME,
  password: env.DB_PASSWORD,
  database: env.DB_DATABASE,
  logging: false,
  synchronize: false,
  name: 'default',
  migrations: ['migrations/**/*{.ts,.js}'],
});

我使用: the -node迁移:运行-d迁移/omconfig.ts运行迁移。

这将产生以下错误:

代码语言:javascript
复制
 Error during migration run:
    RangeError: Maximum call stack size exceeded
        at /Users/christianayscue/Desktop/nestjsClass/nestjs-task-management/node_modules/src/util/DirectoryExportedClassesLoader.ts:29:43
        at Array.forEach (<anonymous>)
        at loadFileClasses (/Users/christianayscue/Desktop/nestjsClass/nestjs-task-management/node_modules/src/util/DirectoryExportedClassesLoader.ts:29:35)
        at /Users/christianayscue/Desktop/nestjsClass/nestjs-task-management/node_modules/src/util/DirectoryExportedClassesLoader.ts:27:42
        at Array.forEach (<anonymous>)
        at loadFileClasses (/Users/christianayscue/Desktop/nestjsClass/nestjs-task-management/node_modules/src/util/DirectoryExportedClassesLoader.ts:27:22)
        at /Users/christianayscue/Desktop/nestjsClass/nestjs-task-management/node_modules/src/util/DirectoryExportedClassesLoader.ts:30:17
        at Array.forEach (<anonymous>)
        at loadFileClasses (/Users/christianayscue/Desktop/nestjsClass/nestjs-task-management/node_modules/src/util/DirectoryExportedClassesLoader.ts:29:35)
        at /Users/christianayscue/Desktop/nestjsClass/nestjs-task-management/node_modules/src/util/DirectoryExportedClassesLoader.ts:30:17

我假设在DirectoryExportedClassesLoader.ts中存在导致无限循环的循环依赖,所以我将一个console.log(JSON.stringify(导出))放在DirectoryExportedClassesLoader.ts的第26行,现在我得到:

代码语言:javascript
复制
TypeError: Converting circular structure to JSON
    --> starting at object with constructor 'DataSource'
    |     property 'driver' -> object with constructor 'PostgresDriver'
    --- property 'connection' closes the circle
    at JSON.stringify (<anonymous>)
    at loadFileClasses (/Users/christianayscue/Desktop/nestjsClass/typeormTest/src/util/DirectoryExportedClassesLoader.ts:29:25)

如果存在循环依赖项,则似乎可以保证DirectoryExportedClassLoader.js获得最大调用堆栈大小超过错误,因为每当遇到对象属性时,它都是自递归的。

请帮帮忙!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-19 01:54:08

从DataSource配置对象中更改此条目解决了问题。

代码语言:javascript
复制
migrations: []

这是其中之一,只是经过了大量的尝试和错误的解决.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73778521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档