我知道这是一个特殊的用例,但是我同时安装了mysql和mysql2包,我需要测试它们,但是根据我的理解,typeorm会首先检查mysql是否在node_modules中,然后使用它。我怎样才能强制使用mysql2呢?或者通过编程在它们之间切换呢?谢谢
mysql
mysql2
node_modules
lf5gs5x21#
我最近也遇到了同样的问题,经过一段时间的研究(包括阅读源代码)我找到了一种方法。
// for 0.2.x { driver: PlatformTools.load('mysql2'), //...other options } // for 0.3.x { connectorPackage: 'mysql2' //other options }
yml
在你的项目根目录下创建ormconfig.yml,在default.driver选项中放置一个空对象。
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.*。
ormconfig.*
szqfcxe22#
在MysqlConnectionOptions有驱动程序对象,默认为require("mysql"),你可以设置为require("mysql2")。希望能帮助大家。
MysqlConnectionOptions
require("mysql")
require("mysql2")
2条答案
按热度按时间lf5gs5x21#
我最近也遇到了同样的问题,经过一段时间的研究(包括阅读源代码)我找到了一种方法。
1编程:
2使用
yml
配置在你的项目根目录下创建
ormconfig.yml
,在default.driver
选项中放置一个空对象。使用
yml
时,请确保路径中没有其他ormconfig.*
。szqfcxe22#
在
MysqlConnectionOptions
有驱动程序对象,默认为require("mysql")
,你可以设置为require("mysql2")
。希望能帮助大家。