Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // user
- 'use strict';
- module.exports = {
- up: (queryInterface, Sequelize) => {
- return queryInterface.createTable('Users', {
- id: {
- allowNull: false,
- autoIncrement: true,
- primaryKey: true,
- type: Sequelize.INTEGER
- },
- firstName: {
- type: Sequelize.STRING,
- allowNull: false
- },
- lastName: {
- type: Sequelize.STRING,
- allowNull: false
- },
- username: {
- type: Sequelize.STRING,
- allowNull: false
- },
- password: {
- type: Sequelize.STRING,
- allowNull: false
- },
- email: {
- type: Sequelize.STRING
- },
- phone: {
- type: Sequelize.STRING
- },
- gender: {
- type: Sequelize.STRING
- },
- createdAt: {
- allowNull: false,
- type: Sequelize.DATE
- },
- updatedAt: {
- allowNull: false,
- type: Sequelize.DATE
- }
- });
- },
- down: (queryInterface, Sequelize) => {
- return queryInterface.dropTable('Users');
- }
- };
- // post
- 'use strict';
- module.exports = {
- up: (queryInterface, Sequelize) => {
- return queryInterface.createTable('Posts', {
- id: {
- allowNull: false,
- autoIncrement: true,
- primaryKey: true,
- type: Sequelize.INTEGER
- },
- userID: {
- type: Sequelize.INTEGER,
- allowNull: false,
- references: {
- model: 'Users',
- key: 'id'
- }
- },
- description: {
- type: Sequelize.TEXT
- },
- like: {
- type: Sequelize.INTEGER,
- defaultValue: 0
- },
- createdAt: {
- allowNull: false,
- type: Sequelize.DATE
- },
- updatedAt: {
- allowNull: false,
- type: Sequelize.DATE
- }
- });
- },
- down: (queryInterface, Sequelize) => {
- return queryInterface.dropTable('Posts');
- }
- };
- // image
- 'use strict';
- module.exports = {
- up: (queryInterface, Sequelize) => {
- return queryInterface.createTable('Images', {
- id: {
- allowNull: false,
- autoIncrement: true,
- primaryKey: true,
- type: Sequelize.INTEGER
- },
- postID: {
- type: Sequelize.INTEGER,
- allowNull: false,
- references: {
- model: 'Posts',
- key: 'id'
- }
- },
- urlImage: {
- type: Sequelize.STRING,
- allowNull: false
- },
- createdAt: {
- allowNull: false,
- type: Sequelize.DATE
- },
- updatedAt: {
- allowNull: false,
- type: Sequelize.DATE
- }
- });
- },
- down: (queryInterface, Sequelize) => {
- return queryInterface.dropTable('Images');
- }
- };
- // user
- 'use strict';
- module.exports = (sequelize, DataTypes) => {
- const User = sequelize.define('User', {
- firstName: DataTypes.STRING,
- lastName: DataTypes.STRING,
- username: DataTypes.STRING,
- password: DataTypes.STRING,
- email: DataTypes.STRING,
- phone: DataTypes.STRING,
- gender: DataTypes.STRING
- }, {});
- User.associate = function(models) {
- User.hasMany(models.Post, {refeignKey: 'userID'})
- User.hasMany(models.Comment, {refeignKey: 'userID'})
- User.hasMany(models.Follow, {refeignKey: 'userID'})
- User.hasMany(models.Follow, {refeignKey: 'userID_follow'})
- };
- return User;
- };
- //post
- 'use strict';
- module.exports = (sequelize, DataTypes) => {
- const Post = sequelize.define('Post', {
- description: DataTypes.STRING,
- like: DataTypes.INTEGER
- }, {});
- Post.associate = function(models) {
- Post.belongsTo(models.User, {refeignKey: 'userID'})
- Post.hasOne(models.Image, {refeignKey: 'postID'})
- Post.hasOne(models.Comment, {refeignKey: 'postID'})
- };
- return Post;
- };
- //image
- 'use strict';
- module.exports = (sequelize, DataTypes) => {
- const Image = sequelize.define('Image', {
- urlImage: DataTypes.STRING
- }, {});
- Image.associate = function(models) {
- Image.belongsTo(models.Post, {refeignKey: 'postID'})
- };
- return Image;
- };
- const result = await Post.create({
- description: postInfo.description,
- Image: {
- urlImage: postInfo.urlImage
- }
- },{
- include: Image
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement