我以為這樣的錯誤應該與欄位型別(資料型別)不匹配有關。但事實證明這是錯誤的,因為我已經嘗試將表id和外鍵的資料型別改為整數和uuid,但仍然是相同的結果。我還想指出的是,我對nodejs是完全陌生的,所以你知道我來自哪里......
migration/index.php?
migration/xxxxxxx-demo-user.js migrations/xxxxxx-demo-plan.js 錯誤資訊 uj5u.com熱心網友回復: 嘗試重新命名你的 "xxxxxx-demo-user.js "和 "xxxxxx-demo-plan.js "遷移檔案名。因為一開始你是在計劃遷移之前運行了用戶遷移,所以這就是為什么你的 "planId "欄位(用戶表)指向不存在的計劃表。試著這樣做,然后再運行一次遷移:
標籤:'use strict'/span>。
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.createTable(' Users', {
id: {
type: Sequelize。UUID。
defaultValue: Sequelize.UUIDV4。
allowNull。false。
primaryKey: true。
},
firstName: {
type: Sequelize.STRING。
},
lastName: {
type: Sequelize.STRING.
},
email: {
type: Sequelize.STRING.
},
phoneNumber: {
type: Sequelize.STRING.
},
country: {
type: Sequelize.STRING.
},
PlanId: {
type: Sequelize。UUID。
references: {
model: 'Plans',
key: 'id'。
},
onUpdate: 'CASCADE',
onDelete: 'SET NULL'。
},
password: {
type: Sequelize.STRING。
},
createdAt: {
allowNull: false,
type: Sequelize.DATE。
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE。
}
});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.dropTable('Users')。
}
};
'use strict'。
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.createTable('Plans'/span>, {
id: {
type: Sequelize.UUID。
defaultValue: Sequelize.UUIDV4。
allowNull。false。
primaryKey: true。
},
title: {
type: Sequelize.STRING。
},
createdAt: {
allowNull: false,
type: Sequelize.DATE。
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE。
}
});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.dropTable('Plans')。
}
};
20210918101111demo-plan.js
202109181022-demo-user.js
sequelize db:migrate:undo:all
序列化 db:migrate

