index.js 997 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. const { Sequelize } = require('sequelize');
  2. const { mariadb: config } = require('../../../config');
  3. const { dateFormat } = require('../../../utils');
  4. function formatTime(m) {
  5. delete m.deletedAt;
  6. m.createdAt && (m.createdAt = dateFormat(m.createdAt));
  7. m.updatedAt && (m.updatedAt = dateFormat(m.updatedAt));
  8. }
  9. const connect = new Sequelize({
  10. encrypt: true,
  11. ...config,
  12. dialect: 'mysql',
  13. pool: {
  14. max: 5,
  15. min: 0,
  16. acquire: 30000,
  17. idle: 10000,
  18. },
  19. define: {
  20. // prevent sequelize from pluralizing table names
  21. charset: 'utf8',
  22. collate: 'utf8_bin',
  23. paranoid: true,
  24. underscored: true,
  25. timestamps: true,
  26. freezeTableName: true,
  27. initialAutoIncrement: 10000,
  28. },
  29. timezone: '+08:00',
  30. logging: console.log,
  31. benchmark: true,
  32. logQueryParameters: true,
  33. query: {
  34. raw: true,
  35. },
  36. hooks: {
  37. afterFind(m) {
  38. m && (Array.isArray(m) ? m.forEach(item => formatTime(item)) : formatTime(m));
  39. },
  40. },
  41. });
  42. module.exports = connect;