首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Sequelize MySQL迁移- false独有

Sequelize MySQL迁移- false独有
EN

Stack Overflow用户
提问于 2021-02-27 22:17:37
回答 1查看 190关注 0票数 2

我正在尝试用Sequelize和MySQL编写一个迁移,它将唯一属性设置为false。到目前为止,这是我的方法:

代码语言:javascript
运行
复制
module.exports = {
  up: async (queryInterface, Sequelize) => {
          await queryInterface.changeColumn("users", "name", {
              type: Sequelize.STRING,
              allowNull: false,
              unique: true,
          });
          await queryInterface.changeColumn("users", "email", {
              type: Sequelize.STRING,
              allowNull: false,
              unique: true,
         });
    },

 down: async (queryInterface, Sequelize) => {
          await queryInterface.changeColumn("users", "name", {
            type: Sequelize.STRING,
            allowNull: true,
            unique: false,
      });
          await queryInterface.changeColumn("users", "email", {
            type: Sequelize.STRING,
            allowNull: true,
            unique: false,
   });
  },
};

向上迁移类似于charme,向下迁移适用于allowNull,但不适用于唯一属性。我是新的续集,所以我想知道,这里出了什么问题。有人能帮帮我吗?

非常提前感谢您。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-28 04:04:39

Sequelize具有"removeConstraint“方法,使用该方法可以删除属性的约束。

代码语言:javascript
运行
复制
public removeConstraint(tableName: string, constraintName: string, options: Object): Promise

实际上,如果您在创建时没有指定“属性名”,它应该是"constraintName“的形式

_

独一无二

_

键“。

请尝试使用这种方式

代码语言:javascript
运行
复制
module.exports = {
  up: async (queryInterface, Sequelize) => {
    await queryInterface.changeColumn("users", "name", {
      type: Sequelize.STRING,
      allowNull: false,
      unique: true,
    });
    await queryInterface.changeColumn("users", "email", {
      type: Sequelize.STRING,
      allowNull: false,
      unique: true,
    });
  },

  down: async (queryInterface, Sequelize) => {
    await queryInterface.changeColumn("users", "name", {
      type: Sequelize.STRING,
      allowNull: true,
    });
    await queryInterface.removeConstraint("users", "name_unique_key");
    await queryInterface.changeColumn("users", "email", {
      type: Sequelize.STRING,
      allowNull: true,
    });
    await queryInterface.removeConstraint("users", "email_unique_key");
  },
};

有关更多信息,请查看文档

这里

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66399694

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档