Sequelize не вставляет значения во вновь добавленные столбцы - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть Users таблица, и я добавил два новых столбца email и firstName в таблицу через новый файл миграции

sequelize db:create --name add_columns_to_users

add_columns_to_users.js:

'use strict';
module.exports = {
  up: (queryInterface, Sequelize) => {

    return [
      queryInterface.addColumn(
        'Users',
        'email',
        {
          type: Sequelize.TEXT,
        }
      ),
      queryInterface.addColumn(
        'Users',
        'firstName',
        {
          type: Sequelize.TEXT,
        }
      )
    ];
  },

  down: (queryInterface, Sequelize) => {
  }
};

user / schema.graphql:

type User {
  id: ID!
  username: String
  email: String
  firstName: String
}

type Query {
  users(id: ID): [User]
}

input CreateUserInput {
  username: String!
  email: String!
  firstName: String!
}

type Mutation {
  createUser (input: CreateUserInput!): User
}

И у меня есть следующее в моей пользовательской мутации:

Mutation: {
    createUser(root, {input}, context){
    models.User.create(input).then( user => {
        console.log(user);
    });
  }
}

Этовходные данные, которые я отправляю:

{ 
  'username': profile.username,
  'email': profile.email,
  'firstName': profile.firstName
}

В моих журналах я вижу, что значения не вставляются в новые столбцы email и firstName, тогда как у него нет проблем со старыми столбцами, такими как 'username` и т. д.

INSERT INTO "Users" ("id","username","createdAt","updatedAt") VALUES 
(DEFAULT,'Sxxxxh RxxxF','2018-12-04 08:34:11.974 +00:00','2018-12-04 08:34:11.974 +00:00') 
RETURNING *;

1 Ответ

0 голосов
/ 04 декабря 2018

Так глупо с моей стороны!Я забыл добавить новые столбцы в models / user.js

models / user.js:

'use strict';

module.exports = (sequelize, DataTypes) => {
  const User = sequelize.define('User', {
    username: DataTypes.TEXT,
    password: DataTypes.TEXT,
    token: DataTypes.TEXT,
    abbr: DataTypes.TEXT,
    deleted: DataTypes.BOOLEAN,
    email: DataTypes.TEXT,
    firstName: DataTypes.TEXT
  }, {});

  User.associate = function(models) {
  };
  return User;
};
...