Mwafrika_Josue

migration-models

Dec 9th, 2022
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.80 KB | None | 0 0
  1. // Models
  2.  
  3. "use strict";
  4. const { Model } = require("sequelize");
  5. module.exports = (sequelize, DataTypes) => {
  6. class DemandeAbonnement extends Model {
  7. /**
  8. * Helper method for defining associations.
  9. * This method is not a part of Sequelize lifecycle.
  10. * The `models/index` file will call this method automatically.
  11. */
  12. static associate(models) {
  13. // define association here
  14. //----------------------------------------------------------------
  15. models.Abonnement.belongsToMany(models.User, {
  16. through: "DemandeAbonnement",
  17. foreignKey: "id_abonnement",
  18. otherKey: "id_user",
  19. });
  20. models.Abonnement.hasMany(models.DemandeAbonnement, {
  21. foreignKey: "id_abonnement",
  22. });
  23. //----------------------------------------------------------------
  24. models.User.belongsToMany(models.Abonnement, {
  25. through: "DemandeAbonnement",
  26. foreignKey: "id_user",
  27. otherKey: "id_abonnement",
  28. });
  29.  
  30. DemandeAbonnement.belongsTo(models.User, {
  31. foreignKey: "id_user",
  32. });
  33. DemandeAbonnement.belongsTo(models.Abonnement, {
  34. foreignKey: "id_abonnement",
  35. });
  36.  
  37. models.User.hasMany(models.DemandeAbonnement, {
  38. foreignKey: "id_user",
  39. });
  40. }
  41. }
  42. DemandeAbonnement.init(
  43. {
  44. id_user: DataTypes.INTEGER,
  45. id_abonnement: DataTypes.INTEGER,
  46. description_service: DataTypes.STRING,
  47. etat: DataTypes.STRING,
  48. precision_demande: DataTypes.STRING,
  49. },
  50. {
  51. sequelize,
  52. modelName: "DemandeAbonnement",
  53. freezeTableName: true,
  54. }
  55. );
  56. return DemandeAbonnement;
  57. };
  58.  
  59.  
  60.  
  61.  
  62. // migrations
  63.  
  64. "use strict";
  65. /** @type {import('sequelize-cli').Migration} */
  66. module.exports = {
  67. async up(queryInterface, Sequelize) {
  68. await queryInterface.createTable("DemandeAbonnement", {
  69. id: {
  70. allowNull: false,
  71. autoIncrement: true,
  72. primaryKey: true,
  73. type: Sequelize.INTEGER,
  74. },
  75. id_user: {
  76. type: Sequelize.INTEGER,
  77. references: {
  78. model: "User",
  79. key: "id",
  80. },
  81. },
  82. id_abonnement: {
  83. type: Sequelize.INTEGER,
  84. references: {
  85. model: "Abonnement",
  86. key: "id",
  87. },
  88. },
  89. description_service: {
  90. type: Sequelize.STRING,
  91. },
  92. etat: {
  93. type: Sequelize.STRING,
  94. },
  95. precision_demande: {
  96. type: Sequelize.STRING,
  97. },
  98. createdAt: {
  99. allowNull: false,
  100. type: Sequelize.DATE,
  101. },
  102. updatedAt: {
  103. allowNull: false,
  104. type: Sequelize.DATE,
  105. },
  106. });
  107. },
  108. async down(queryInterface, Sequelize) {
  109. await queryInterface.dropTable("DemandeAbonnement");
  110. },
  111. };
  112.  
Advertisement
Add Comment
Please, Sign In to add comment