forked from terra-money/terraswap-graph
-
Notifications
You must be signed in to change notification settings - Fork 1
/
ormconfig.js
54 lines (51 loc) · 1.53 KB
/
ormconfig.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
const { DefaultNamingStrategy } = require('typeorm')
const { values, snakeCase } = require('lodash')
const entities = require('orm/entities')
class CamelToSnakeNamingStrategy extends DefaultNamingStrategy {
tableName(targetName, userSpecifiedName) {
return userSpecifiedName ? userSpecifiedName : snakeCase(targetName)
}
columnName(propertyName, customName, embeddedPrefixes) {
return snakeCase(embeddedPrefixes.concat(customName ? customName : propertyName).join('_'))
}
columnNameCustomized(customName) {
return customName
}
relationName(propertyName) {
return snakeCase(propertyName)
}
}
const connectionOptions = {
host: process.env.DB_HOST || 'localhost',
port: parseInt(process.env.DB_PORT) || 5432,
username: process.env.DB_USERNAME || "terraswap_graph_user",
password: process.env.DB_PASSWORD || "terraswap_graph_password",
database: process.env.DB_NAME || "terraswap_graph",
logging: process.env.NODE_ENV !== 'prod'
}
module.exports = [
{
name: 'default',
type: 'postgres',
synchronize: false,
migrationsRun: false,
logging: true,
logger: 'file',
migrations: ['src/orm/migrations/*.ts'],
...connectionOptions,
},
{
name: 'migration',
type: 'postgres',
synchronize: false,
migrationsRun: true,
logging: true,
logger: 'file',
supportBigNumbers: true,
bigNumberStrings: true,
entities: values(entities),
migrations: ['src/orm/migrations/*.ts'],
namingStrategy: new CamelToSnakeNamingStrategy(),
...connectionOptions,
},
]