Guest User

Untitled

a guest
Dec 17th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. const fs = require('fs');
  2. const path = require('path');
  3. const Sequelize = require('sequelize');
  4.  
  5. const { db: dbConfig } = require('config');
  6.  
  7. const basename = path.basename(__filename);
  8.  
  9. const { Op } = Sequelize;
  10.  
  11. const sequelize = new Sequelize({
  12. host: dbConfig.host,
  13. port: dbConfig.port,
  14. username: dbConfig.username,
  15. password: dbConfig.password,
  16. database: dbConfig.database,
  17. dialect: 'mysql',
  18.  
  19. //pool: {
  20. // max: dbConfig.pool.max,
  21. // min: dbConfig.pool.min,
  22. // idle: dbConfig.pool.idle,
  23. // acquire: dbConfig.pool.acquire,
  24. // evict: dbConfig.pool.evict
  25. //},
  26.  
  27. benchmark: dbConfig.benchmark,
  28. logging: (dbConfig.logging && dbConfig.benchmark)
  29. ? (log, bench) => console.log(`## Sqlz ( ${bench} ms ):`, log) : dbConfig.logging
  30. ? (log) => console.log('## Sqlz:', log) : false,
  31.  
  32. define: {
  33. underscored: false,
  34. timestamps: false,
  35. paranoid: false,
  36. freezeTableName: false,
  37. charset: 'utf8',
  38. collate: 'utf8_general_ci'
  39. },
  40.  
  41. omitNull: false,
  42. typeValidation: true,
  43.  
  44. });
  45.  
  46. const fileHasDot = (file) => file.indexOf('.') !== 0;
  47. const isNotBasefile = (file) => file !== basename;
  48. const isJsFile = (file) => file.slice(-3) === '.js';
  49.  
  50. module.exports = async function init() {
  51.  
  52. const models = {};
  53.  
  54. fs.readdirSync(__dirname)
  55. .filter(fileHasDot)
  56. .filter(isNotBasefile)
  57. .filter(isJsFile)
  58. .forEach((file) => {
  59. const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes);
  60. models[model.name] = model;
  61. });
  62.  
  63. Object.keys(models).forEach((modelName) => {
  64. if (models[modelName].associate) {
  65. models[modelName].associate(models);
  66. }
  67. });
  68.  
  69. if (dbConfig.connectionLogging) {
  70. await sequelize.authenticate();
  71. console.log('Sequelize successfully connected!');
  72. }
  73.  
  74. return { sequelize, Sequelize, models };
  75. };
Add Comment
Please, Sign In to add comment