index.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. const dbConfig = require("../../config/db.config.js");
  2. const Sequelize = require("sequelize");
  3. const sequelize = new Sequelize(
  4. dbConfig.DB, dbConfig.USER, dbConfig.PASSWORD,
  5. {
  6. host: dbConfig.HOST, dialect: dbConfig.dialect, operationAliases: false, pool: {
  7. max: dbConfig.pool.max, min: dbConfig.pool.min,
  8. acquire: dbConfig.pool.acquire, idle: dbConfig.pool.idle
  9. }
  10. }
  11. );
  12. const db = {};
  13. db.Sequelize = Sequelize;
  14. db.sequelize = sequelize;
  15. db.langs = require("./lang.model.js")(sequelize, Sequelize);
  16. db.texts = require("./text.model.js")(sequelize, Sequelize);
  17. db.licenses = require("./license.model.js")(sequelize, Sequelize);
  18. db.projects = require("./project.model.js")(sequelize, Sequelize);
  19. db.projectTypes = require("./project-type.model.js")(sequelize, Sequelize);
  20. db.projectUrlTypes = require("./project-url-type.model.js")(sequelize, Sequelize);
  21. db.projectUrls = require("./project-url.model.js")(sequelize, Sequelize);
  22. db.projectImages = require("./project-image.model.js")(sequelize, Sequelize);
  23. db.tags = require("./tag.model.js")(sequelize, Sequelize);
  24. db.projects.belongsTo(db.licenses, {foreignKey: 'licenseId', as: "license"});
  25. db.licenses.hasMany(db.projects);
  26. db.projects.belongsTo(db.projectTypes, {foreignKey: 'projectTypeId', as: "type"});
  27. db.projectTypes.hasMany(db.projects);
  28. const ProjectTag = sequelize.define("project-tag",{},{ timestamps: false });
  29. db.projects.belongsToMany(db.tags, { through: ProjectTag });
  30. db.tags.belongsToMany(db.projects, { through: ProjectTag });
  31. db.projectUrls.belongsTo(db.projectUrlTypes, {foreignKey: 'projectUrlTypeId', as: "type"});
  32. db.projectUrlTypes.hasMany(db.projectUrls);
  33. db.projectUrls.belongsTo(db.projects, {foreignKey: 'projectId', as: "project"});
  34. db.projects.hasMany(db.projectUrls);
  35. db.projectImages.belongsTo(db.projects, {foreignKey: 'projectId', as: "project"});
  36. db.projects.hasMany(db.projectImages);
  37. module.exports = db;