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

ttcibm8c  于 2023-01-01  发布在  Mysql
关注(0)|答案(2)|浏览(160)

我知道这是一个特殊的用例,但是我同时安装了mysqlmysql2包,我需要测试它们,但是根据我的理解,typeorm会首先检查mysql是否在node_modules中,然后使用它。
我怎样才能强制使用mysql2呢?或者通过编程在它们之间切换呢?谢谢

lf5gs5x2

lf5gs5x21#

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

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.*

szqfcxe2

szqfcxe22#

MysqlConnectionOptions有驱动程序对象,默认为require("mysql"),你可以设置为require("mysql2")。希望能帮助大家。

相关问题