typeorm:如果安装了 mysql,则强制 mysql2
typeorm: force mysql2 if mysql is installed
我知道这是一个特殊的用例,但我同时安装了 mysql
和 mysql2
包,我需要测试它们。
然而,据我了解,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.*
。
我知道这是一个特殊的用例,但我同时安装了 mysql
和 mysql2
包,我需要测试它们。
然而,据我了解,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.*
。