gpt4 book ai didi

javascript - 使用 Sequelize 添加/删除字段

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

我正在使用 Sequelize-cli 并且在使用它时遇到了一些麻烦。

请注意,这是我第一次使用 Sequelize,可能是我丢失了一些概念,非常感谢它告诉我我错过了什么。

我做了一个这样的简单模型:

$ sequelize model:generate --name Notes --attributes text:content

我得到了这个迁移文件:
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.createTable('Notes', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER
},
content: {
type: Sequelize.TEXT
},
createdAt: {
allowNull: false,
type: Sequelize.DATE
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE
}
});
},
down: (queryInterface, Sequelize) => {
return queryInterface.dropTable('Notes');
}
};

但是现在我需要在字符串类型中添加新字段“title”,但是我找不到有关此过程的任何相关信息。

我应该只运行 db:migrate:undo 来删除所有表并更新迁移和模型文件并重做迁移吗?我认为这不是使用 sequelize 的正确方法。

我也一直混淆“迁移”的概念,我为什么要使用它?

运行“迁移:撤消”命令后似乎所有数据都消失了,有没有办法保存它们,以便我可以在更新表架构后恢复数据?

任何建议都会非常感激!

最佳答案

通过创建新迁移并使用 queryInterface.addColumn 创建新字段来解决此问题!

module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.addColumn(
'Notes',
'title',
Sequelize.STRING
);
},
down: (queryInterface, Sequelize) => {
return queryInterface.removeColumn(
'Notes',
'title'
);
}
};

关于javascript - 使用 Sequelize 添加/删除字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52913127/

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