-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdb.ts
More file actions
32 lines (32 loc) · 1.07 KB
/
Copy pathdb.ts
File metadata and controls
32 lines (32 loc) · 1.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import { join } from "path";
import { Connection, ConnectionOptions, createConnection } from "typeorm";
export class Db {
public static connection: Connection;
public static async createTestConnection() {
await this.createConnection({ dropSchema: true });
}
public static async createConnection(
options: Partial<ConnectionOptions> = {}
) {
if (this.connection) await this.connection.close();
const entities = [
join(process.cwd(), "out", "domain", "**", "*.js"),
join(process.cwd(), "*.js")
];
const finalOptions: any = {
database: process.env.TYPEORM_DATABASE,
dropSchema: false,
entities,
extra: JSON.parse(process.env.TYPEORM_DRIVER_EXTRA || "{}"),
host: process.env.TYPEORM_HOST,
logging: process.env.TYPEORM_LOGGING,
password: process.env.TYPEORM_PASSWORD,
port: process.env.TYPEORM_PORT,
synchronize: true,
type: process.env.TYPEORM_DRIVER_TYPE,
username: process.env.TYPEORM_USERNAME,
...options
};
this.connection = await createConnection(finalOptions);
}
}