/
knexfile.js
56 lines (52 loc) · 1.34 KB
/
knexfile.js
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
require('dotenv').config();
const clients = {
mysql: {
client: 'mysql',
connection: {
host: process.env.MYSQL_HOST,
user: process.env.MYSQL_USER,
password: process.env.MYSQL_PASSWORD,
database: process.env.MYSQL_DATABASE,
port: process.env.MYSQL_PORT,
},
pool: { min: 2, max: 10 }
},
mysql2: {
client: 'mysql2',
connection: {
host: process.env.MYSQL_HOST,
user: process.env.MYSQL_USER,
password: process.env.MYSQL_PASSWORD,
database: process.env.MYSQL_DATABASE,
port: process.env.MYSQL_PORT,
},
pool: { min: 2, max: 10 }
},
pg: {
client: 'pg',
connection: {
host: process.env.PG_HOST,
user: process.env.PG_USER,
password: process.env.PG_PASSWORD,
database: process.env.PG_DATABASE,
port: process.env.PG_PORT,
},
pool: { min: 2, max: 10 }
},
sqlite3: {
client: 'sqlite3',
connection: {
filename: process.env.SQLITE3_FILENAME,
flags: process.env.SQLITE3_FLAGS
},
pool: { min: 2, max: 10 }
}
};
const selectedClient = process.env.DB_CLIENT_TYPE;
if (!selectedClient || !clients[selectedClient]) {
console.log('DB_CLIENT_TYPE config missing in .env or invalid. Please enter a valid DB_CLIENT_TYPE (mysql, pg, ...)');
process.exit(1);
}
module.exports = {
...clients[selectedClient]
};