首页 > 解决方案 > 如何使用“typeorm 中的复制”

问题描述

我想使用 TypeORM 设置读/写复制。我的复制连接设置示例:文件 -> ormconfig.js

import Config from './src/config'



module.exports = {
  type: 'mysql',
  logging: true,
  replication: {
    master: {
      host: "asdasd.amazonaws.com",
      port: 3306,
      username: "rwdev",
      password: "RWss4t3dev",
      database: "SysDev"
    },
    slaves: {
      host: "asdadasd.rds.amazonaws.com",
      port: 3306,
      username: "rodev",
      password: "ROss4r34ddev",
      database: "SysDevRead"
    }
  },
  entities: ['src/repo/entities/*.ts'],
  migrations: ['src/migrations/*.ts'],
  cli: {
    migrationsDir: "src/migrations"
  },
  subscribers: ['src/subscriber/**/*.ts'],
  extra: { connectionLimit: 10}
}

然后当我开始在我的代码上运行 "yarn start" 并得到一个错误 "unhandledRejection TypeError: this.options.replication.slaves.forEach is not a function"。我仍然是使用 typeorm 进行这种“复制”的新手,所以任何帮助都将不胜感激。谢谢

标签: replicationtypeorm

解决方案


TypeORM 期望 slaves 是一个数组,因此您会收到错误“forEach 不是函数”。所以你只需要包装它:

module.exports = {
  replication: {
    ...
    slaves: [{
      host: "asdadasd.rds.amazonaws.com",
      port: 3306,
      username: "rodev",
      password: "ROss4r34ddev",
      database: "SysDevRead"
    }],
    ...
}

推荐阅读