我在使用 PostgreSQL 与 TypeORM 和 Jest 时遇到一些问题。基本上,在每个测试文件中,我在测试运行之前打开数据库连接,并在所有测试运行后关闭它。但即使我关闭连接我收到sorry, too many clients already
error.
因此,我想知道是否有一种方法可以设置在所有测试中使用的全局连接,并且无需在每个文件中打开和关闭连接。
我尝试通过以下代码使用笑话中的全局设置:
require('ts-node').register('../tsconfig.json');
require('../src/bootstrap');
const { createConnection, getConnection } = require('typeorm');
const { resolve } = require('path');
const config = require('../src/config/typeorm');
module.exports = async () => {
await createConnection({
type: process.env.FINTECH_BACKEND_SQL_DIALECT as 'postgres' | 'mysql',
host: process.env.FINTECH_BACKEND_SQL_HOST,
port: Number(process.env.FINTECH_BACKEND_SQL_PORT),
username: process.env.FINTECH_BACKEND_SQL_USER,
password: process.env.FINTECH_BACKEND_SQL_PASS,
database: process.env.FINTECH_BACKEND_SQL_DB_NAME,
synchronize: false,
entities: [resolve(__dirname, '..', 'src', 'app', 'models', '*')],
});
};
但我似乎无法在测试中使用此连接。它只是抛出一个错误说Connection "default" was not found
.
有没有办法设置全局 TypeORM 连接,或者至少解决“客户端太多”问题?