(queryTimeoutMilliseconds: number)
| 46 | } |
| 47 | |
| 48 | function models(queryTimeoutMilliseconds: number) { |
| 49 | const database = {} as any |
| 50 | |
| 51 | const credentials = getCredentials() |
| 52 | |
| 53 | const sequelize = new (<any>Sequelize)( |
| 54 | DB_CONFIG.database, |
| 55 | credentials.username, |
| 56 | credentials.password, |
| 57 | { |
| 58 | dialect: DB_CONFIG.dialect, |
| 59 | dialectOptions: { |
| 60 | application_name: SERVICE, |
| 61 | connectionTimeoutMillis: 5000, |
| 62 | query_timeout: queryTimeoutMilliseconds, |
| 63 | idle_in_transaction_session_timeout: 10000, |
| 64 | }, |
| 65 | port: DB_CONFIG.port, |
| 66 | replication: { |
| 67 | read: [ |
| 68 | { |
| 69 | host: |
| 70 | SERVICE === configTypes.ServiceType.API ? DB_CONFIG.readHost : DB_CONFIG.writeHost, |
| 71 | }, |
| 72 | ], |
| 73 | write: { host: DB_CONFIG.writeHost }, |
| 74 | }, |
| 75 | pool: { |
| 76 | max: SERVICE === configTypes.ServiceType.API ? 20 : 10, |
| 77 | min: 0, |
| 78 | acquire: 50000, |
| 79 | idle: 10000, |
| 80 | }, |
| 81 | logging: DB_CONFIG.logging |
| 82 | ? (dbLog) => |
| 83 | log.info( |
| 84 | highlight(dbLog, { |
| 85 | language: 'sql', |
| 86 | ignoreIllegals: true, |
| 87 | }), |
| 88 | 'DB LOG', |
| 89 | ) |
| 90 | : false, |
| 91 | }, |
| 92 | ) |
| 93 | |
| 94 | const modelClasses = [ |
| 95 | require('./activity').default, |
| 96 | require('./auditLog').default, |
| 97 | require('./member').default, |
| 98 | require('./memberIdentity').default, |
| 99 | require('./file').default, |
| 100 | require('./integration').default, |
| 101 | require('./report').default, |
| 102 | require('./settings').default, |
| 103 | require('./tag').default, |
| 104 | require('./tenant').default, |
| 105 | require('./tenantUser').default, |
no test coverage detected