Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.15 KB | None | 0 0
  1. // user
  2. 'use strict';
  3. module.exports = {
  4. up: (queryInterface, Sequelize) => {
  5. return queryInterface.createTable('Users', {
  6. id: {
  7. allowNull: false,
  8. autoIncrement: true,
  9. primaryKey: true,
  10. type: Sequelize.INTEGER
  11. },
  12. firstName: {
  13. type: Sequelize.STRING,
  14. allowNull: false
  15. },
  16. lastName: {
  17. type: Sequelize.STRING,
  18. allowNull: false
  19. },
  20. username: {
  21. type: Sequelize.STRING,
  22. allowNull: false
  23. },
  24. password: {
  25. type: Sequelize.STRING,
  26. allowNull: false
  27. },
  28. email: {
  29. type: Sequelize.STRING
  30. },
  31. phone: {
  32. type: Sequelize.STRING
  33. },
  34. gender: {
  35. type: Sequelize.STRING
  36. },
  37. createdAt: {
  38. allowNull: false,
  39. type: Sequelize.DATE
  40. },
  41. updatedAt: {
  42. allowNull: false,
  43. type: Sequelize.DATE
  44. }
  45. });
  46. },
  47. down: (queryInterface, Sequelize) => {
  48. return queryInterface.dropTable('Users');
  49. }
  50. };
  51.  
  52. // post
  53. 'use strict';
  54. module.exports = {
  55. up: (queryInterface, Sequelize) => {
  56. return queryInterface.createTable('Posts', {
  57. id: {
  58. allowNull: false,
  59. autoIncrement: true,
  60. primaryKey: true,
  61. type: Sequelize.INTEGER
  62. },
  63. userID: {
  64. type: Sequelize.INTEGER,
  65. allowNull: false,
  66. references: {
  67. model: 'Users',
  68. key: 'id'
  69. }
  70. },
  71. description: {
  72. type: Sequelize.TEXT
  73. },
  74. like: {
  75. type: Sequelize.INTEGER,
  76. defaultValue: 0
  77. },
  78. createdAt: {
  79. allowNull: false,
  80. type: Sequelize.DATE
  81. },
  82. updatedAt: {
  83. allowNull: false,
  84. type: Sequelize.DATE
  85. }
  86. });
  87. },
  88. down: (queryInterface, Sequelize) => {
  89. return queryInterface.dropTable('Posts');
  90. }
  91. };
  92.  
  93. // image
  94. 'use strict';
  95. module.exports = {
  96. up: (queryInterface, Sequelize) => {
  97. return queryInterface.createTable('Images', {
  98. id: {
  99. allowNull: false,
  100. autoIncrement: true,
  101. primaryKey: true,
  102. type: Sequelize.INTEGER
  103. },
  104. postID: {
  105. type: Sequelize.INTEGER,
  106. allowNull: false,
  107. references: {
  108. model: 'Posts',
  109. key: 'id'
  110. }
  111. },
  112. urlImage: {
  113. type: Sequelize.STRING,
  114. allowNull: false
  115. },
  116. createdAt: {
  117. allowNull: false,
  118. type: Sequelize.DATE
  119. },
  120. updatedAt: {
  121. allowNull: false,
  122. type: Sequelize.DATE
  123. }
  124. });
  125. },
  126. down: (queryInterface, Sequelize) => {
  127. return queryInterface.dropTable('Images');
  128. }
  129. };
  130.  
  131. // user
  132. 'use strict';
  133. module.exports = (sequelize, DataTypes) => {
  134. const User = sequelize.define('User', {
  135. firstName: DataTypes.STRING,
  136. lastName: DataTypes.STRING,
  137. username: DataTypes.STRING,
  138. password: DataTypes.STRING,
  139. email: DataTypes.STRING,
  140. phone: DataTypes.STRING,
  141. gender: DataTypes.STRING
  142. }, {});
  143. User.associate = function(models) {
  144. User.hasMany(models.Post, {refeignKey: 'userID'})
  145. User.hasMany(models.Comment, {refeignKey: 'userID'})
  146. User.hasMany(models.Follow, {refeignKey: 'userID'})
  147. User.hasMany(models.Follow, {refeignKey: 'userID_follow'})
  148. };
  149. return User;
  150. };
  151.  
  152. //post
  153. 'use strict';
  154. module.exports = (sequelize, DataTypes) => {
  155. const Post = sequelize.define('Post', {
  156. description: DataTypes.STRING,
  157. like: DataTypes.INTEGER
  158. }, {});
  159. Post.associate = function(models) {
  160. Post.belongsTo(models.User, {refeignKey: 'userID'})
  161. Post.hasOne(models.Image, {refeignKey: 'postID'})
  162. Post.hasOne(models.Comment, {refeignKey: 'postID'})
  163. };
  164. return Post;
  165. };
  166.  
  167. //image
  168. 'use strict';
  169. module.exports = (sequelize, DataTypes) => {
  170. const Image = sequelize.define('Image', {
  171. urlImage: DataTypes.STRING
  172. }, {});
  173. Image.associate = function(models) {
  174. Image.belongsTo(models.Post, {refeignKey: 'postID'})
  175. };
  176. return Image;
  177. };
  178.  
  179. const result = await Post.create({
  180. description: postInfo.description,
  181. Image: {
  182. urlImage: postInfo.urlImage
  183. }
  184. },{
  185. include: Image
  186. })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement