Sequelize db: семя, терпящее неудачу в диалекте mysql - PullRequest
0 голосов
/ 15 октября 2018

Я пытаюсь вставить данные в существующую таблицу mysql, используя **sequelize db:seed:all**.Я получаю следующую ошибку в терминале, и в таблицу не вставлены данные:

Sequelize CLI [Node: 8.9.4, CLI: 4.1.1, ORM: 4.38.1]

Loaded configuration file "config\config.json".
Using environment "development".

ERROR: connect ETIMEDOUT

Это моя сеялка

'use strict';

module.exports = {
  up: (queryInterface, Sequelize) => {

      return queryInterface.bulkCreate('permissions', [


        {
          Name:'_create_user',Description:'User can create new user account',createdAt:new Date(),updatedAt:new Date()
        },
         {
          Name:'_create_category',Description:'User can create new  category',createdAt:new Date(),updatedAt:new Date()
        },

         {
          Name:'_edit_comment',Description:'User can edit own comments',createdAt:new Date(),updatedAt:new Date()
        },
        {
          Name:'_edit_category',Description:'User can edit course category',createdAt:new Date(),updatedAt:new Date()
        },

         {
          Name:'_create_permission',Description:'User can create new user permission',createdAt:new Date(),updatedAt:new Date()
        },
         {
          Name:'_create_role',Description:'User can create new user role',createdAt:new Date(),updatedAt:new Date()
        },
        {
          Name:'_assign_role',Description:'User can assign role to other users',createdAt:new Date(),updatedAt:new Date()
        },
         {
          Name:'_assign_permission',Description:'User can assign user permission to other users',createdAt:new Date(),updatedAt:new Date()
        },
         {
          Name:'_revoke_role',Description:'User can remove role assigned to a user',createdAt:new Date(),updatedAt:new Date()
        },
         {
          Name:'_create_permission',Description:'User can remove permission assigned to a user',createdAt:new Date(),updatedAt:new Date()
        }




        ], {});

  },

  down: (queryInterface, Sequelize) => {

      return queryInterface.bulkDelete('permissions', null, {});

  }
};

Мой сервер работает тольконормальный.Другой запрос к базе данных работает нормально, за исключением sequelize db:seed и db:migrate

Миграции работают только для новых таблиц, но те, которые обновляют существующие таблицы, не с той же ошибкой.

'use strict';

module.exports = {
  up: (queryInterface, Sequelize) => {


     return queryInterface.addColumn(
      'Category', // name of Source model
      'ParentId', // name of the key we're adding 
      {
        type: Sequelize.INTEGER,
        references: {
          model: 'Category', // name of Target model
          key: 'id', // key in Target model that we're referencing
        },
        onUpdate: 'CASCADE',
        onDelete: 'SET NULL',
      }
    );
  },

  down: (queryInterface, Sequelize) => {
    /*
      Add reverting commands here.
      Return a promise to correctly handle asynchronicity.

      Example:
      return queryInterface.dropTable('users');
    */

    return queryInterface.removeColumn(
      'Category', // name of Source model
      'ParentId' // key we want to remove
    );
  }
};

выполнение вышеуказанного переноса завершается неудачно с той же ошибкой, и в таблицу категорий не добавляется новый столбец.

В связи с этим отношения, определенные в модели, не работают.Запрашивать модель, включающую ассоциации, снова не удастся:

{
    "error": {
        "name": "SequelizeEagerLoadingError"
    }
}

Вот две модели Категории и продукты

'use strict';
module.exports = (sequelize, DataTypes) => {
  const Category = sequelize.define('Category', {
    CategoryName: DataTypes.STRING
  }, {});
  Category.associate = function(models) {
    // associations can be defined here
   Category.hasMany(models.Product,{foreignKey:'CategoryId'})

// также пробовали это: Category.hasMany (models.Product);// добавляем ссылки на внешние ключи при переносе продуктов, не // заставляя его работать

  };
  return Category;
};

Я подробно остановился на этом, чтобы кто-то помог мне найти решение этих трех проблем сиквелиза: 1)db: перенос на существующие таблицы не работает, 2) db: seed: все вообще не работает и 3) ассоциации не создаются.

...