typeorm:如果安装了 mysql,则强制 mysql2

typeorm: force mysql2 if mysql is installed

我知道这是一个特殊的用例,但我同时安装了 mysqlmysql2 包,我需要测试它们。 然而,据我了解,typeorm 将首先检查 mysql 是否在 node_modules 中并使用它。

如何强制使用 mysql2?或者以编程方式在它们之间切换? 谢谢

我最近遇到了同样的问题,经过一段时间的研究(包括阅读源代码)我找到了办法。

1 以编程方式:

// for 0.2.x
{
  driver: PlatformTools.load('mysql2'),
  //...other options
}
// for 0.3.x
{
  connectorPackage: 'mysql2'
  //other options
}

2 使用 yml 配置

在您的项目根目录中创建 ormconfig.yml,将空对象放入 default.driver 选项。见下文。

default:
  type: mysql #=TYPEORM_CONNECTION
  driver: {} #THIS'LL FORCE TO mysql2
  host: localhost #=TYPEORM_HOST
  port: 3306 #=TYPEORM_PORT
  username: xxxx #=TYPEORM_USERNAME
  password: xxxxx #=TYPEORM_PASSWORD
  database: xxx #=TYPEORM_DATABASE
  entities: #=TYPEORM_ENTITIES
    - dist/**/*.entity.js
  migrations: #=TYPEORM_MIGRATIONS
    - migration/*.js
  cli:
    migrationsDir: migration #=TYPEORM_MIGRATIONS_DIR

使用 yml 时,请确保路径中没有其他 ormconfig.*