node.js - 如何在 Sequelize CLI 中添加、删除新列

标签 node.js sequelize.js psql sequelize-cli

我刚刚开始使用 Sequelize 和 Sequelize CLI

由于是开发时期,经常会增加和删除列。向现有模型添加新列的最佳方法是什么?

例如,我想将一个新列 'completed' 改为 Todo 模型。我将此列添加到 models/todo.js。下一步是什么?

我试过 sequelize db:migrate

不工作:“没有执行迁移,数据库架构已经是最新的。”

最佳答案

如果您使用 sequelize-cli您需要先创建迁移。这只是一个文件,它告诉引擎如何更新数据库以及在出现问题时如何回滚更改。您应该始终将此文件提交到您的存储库

$ sequelize migration:create --name name_of_your_migration

迁移文件如下所示:

module.exports = {
  up: function(queryInterface, Sequelize) {
    // logic for transforming into the new state
    return queryInterface.addColumn(
      'Todo',
      'completed',
     Sequelize.BOOLEAN
    );

  },

  down: function(queryInterface, Sequelize) {
    // logic for reverting the changes
    return queryInterface.removeColumn(
      'Todo',
      'completed'
    );
  }
}

然后,运行它:

$ sequelize db:migrate

关于node.js - 如何在 Sequelize CLI 中添加、删除新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46357533/

相关文章:

postgresql - 无法授予用户对Postgresql数据库的特权(用于Rails应用)

javascript - 根据匹配查询 MongoDB NodeJS 更新所有文档和嵌入文档中的字段

node.js - 运行 docker 容器进行测试

node.js - 在启动删除操作之前,Sequelize 有没有办法检查表中是否存在一行?

node.js - Sequelize在哪里选项sql注入(inject)?

django - 如何修复 django dumpdata "_django_curs_139705..."的错误

node.js - openwhisk actions/IBM Cloud Functions 中的第三方 npm 包

javascript - 在 Node.js 中通过 REST API 传输整个 Javascript 对象的最佳方式

webpack - 如何防止 webpack bundle ?

scala - Doobie for Scala/Play 框架中的事务