TypeORM迁移未发现更改

时间:2020-03-24 15:57:05

标签: node.js migration typeorm

我正在尝试使用TypeOrm生成迁移。当我更改实体时,它应该检测到此更改并生成新的迁移。

我收到以下错误消息:

未找到数据库架构的更改-无法生成迁移。要创建一个新的空迁移,请使用“ typeorm migration:create”命令

更改实体文件中的内容后,为什么会收到此错误消息?

我正在使用此命令来运行TypeOrm:

    "typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js --config src/typeormConfig.ts",

这是我的typeormConfig.ts文件:

import { ConnectionOptions } from "typeorm";
import * as path from "path";
import * as dotEnv from 'dotenv'

console.log(path.resolve(__dirname, 'entity/**.entity.ts'))

const result = dotEnv.config({ path: './ormconfig.env' });

if (result.error) {
  throw result.error
}

const config: ConnectionOptions = {
  type: 'mysql',
  host: process.env.TYPEORM_HOST,
  port: +process.env.TYPEORM_PORT,
  username: process.env.TYPEORM_USERNAME,
  password: process.env.TYPEORM_PASSWORD,
  database: process.env.TYPEORM_DATABASE,
  //synchronize: true,
  synchronize: false,
  // migrationsRun: false,
  entities: [path.resolve(__dirname, 'entity/**.entity.*')],
  migrations: [path.resolve(__dirname, 'migration/**')],
  cli: {
    entitiesDir: "src/entity",
    migrationsDir: "src/migration"
  }
}

export default config;

2 个答案:

答案 0 :(得分:0)

像这样更新实体和迁移目录链接

  const query = q => document.querySelectorAll(q);
  
  const filters = Array.from(document.querySelectorAll('input')).map(e => new RegExp(e.value, 'i'));

  query('tbody tr').forEach(row => row.style.display = 
    filters.every((f, i) => f.test(row.cells[i + 1].textContent)) ? '' : 'none'); 

它对我有用并且应该有用。

答案 1 :(得分:0)

  1. 确保您已配置:
  "migrations": ["db-migrations/*{.ts,.js}"],
  "cli": {
    "migrationsDir": "db-migrations"
  }
  1. 启用 synchronize 并转到上一个。架构状态(运行项目 - 这将重置数据库更改)
  2. 进行代码更改(从 gi​​t 应用它们或移动到更改的分支)
  3. 禁用 synchronize 并运行项目(以使其编译更改)- 运行可能会失败,但没问题
  4. 运行 typeorm migration:generate -n TestMigration 就会成功

从那里离开 synchronize 禁用,只需在运行 migration:generate 之前编译项目