Я пытаюсь вставить данные в существующую таблицу 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) ассоциации не создаются.