gpt4 book ai didi

javascript - 种子文件中的模型创建或批量创建 promise

转载 作者:行者123 更新时间:2023-12-03 22:39:22 25 4
gpt4 key购买 nike

我有一些 promise 链来添加数据。如果我在 JavaScript 文件中“通常”使用它,我从 Node.js 开始或以其他方式调用它,它可以工作(或多或少 - 不同的问题)。

但是,如果我想在带有 sequelize-cli (sequelize db:seed:all) 的 sequelize 种子文件中使用它,则 promise 将不起作用。好的,有一个错误运行到 .catch 链中,但是 .then 不起作用...

promise 字段都是未定义的......

我知道我可以使用bulkInsert,但是如果我“必须”使用原始SQL,为什么我要使用ORM,尤其是当我在指向uuid 的表之间有链接时?

我定义了模型,有一个“正常”迁移文件,并且想要带有种子的“开始”数据。我需要单独的东西来使用 create/bulkCreate promise 吗?

我错过了文档中的某些内容吗?

最佳答案

我自己通过多次尝试发现了这个问题的答案:
Sequelize dynamic seeding

需要在模型中修复关联:

User.associate = function(models) {
User.belongsToMany(
models.Role, {
through: 'user_role',
}
);
};


Role.associate = function(models) {
Role.belongsToMany(
models.User, {
through: 'user_role',
}
);
};

而 m:n 表需要这个:
....
.then(() => {
queryInterface.createTable('user_role', {
userUuid: {
type: Sequelize.UUIDV4,
references: {
model: 'User',
key: 'uuid',
},
allowNull: false,
},
roleUuid: {
type: Sequelize.UUIDV4,
references: {
model: 'Role',
key: 'uuid',
},
allowNull: false,
},
createdAt: { allowNull: false, type: Sequelize.DATE },
updatedAt: { allowNull: false, type: Sequelize.DATE },
});
}).then(() => {
return queryInterface.addConstraint(
'user_role',
['userUuid', 'roleUuid'], {
unique: true,
type: 'primary key',
name: 'userrole_pkey',
}
);
});

将字段重命名为从 sequelize 生成的字段

关于javascript - 种子文件中的模型创建或批量创建 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52510355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com