【问题标题】:Disable Primary Key in Sequelize JS在 Sequelize JS 中禁用主键
【发布时间】:2014-10-17 08:39:44
【问题描述】:

有没有办法在 Sequelize JS 中禁用自动生成的主键?

我们使用 Sequelize 的同步方法在 PostgreSQL 中创建表。但是我们的联结表有问题....我们不希望联结表中有一个主键,但是如果我们自己不指定一个主键,Sequelize 会自动生成一个。我可以在所有列上指定一个主键,但这不是最好的方法......

谁知道如何在 Sequelize JS 中禁用主键?

【问题讨论】:

  • 在哪里可以找到解决方案?
  • 好吧,我们不再使用同步方法了。我们使用 Sequelize 的迁移创建新表并对其进行编辑。因此,在每次部署之后,我们都会直接为我们的数据库部署新的更改。在我们的模型中,我们对联结表使用复合主键。因此,只需将primaryKey: true 添加到多个列,它们的组合使它们独一无二。所以users 表有一个列id 作为主键,books 有一个列id 作为主键。但是 user_books(= 联结表)有 2 个主键:user_idbook_id 这不是我们想要的,但效果最好。
  • 非常感谢,从昨天开始我一直在苦苦挣扎,但没有找到解决方案,再次感谢,我会按照你的方式进行

标签: javascript postgresql sequelize.js


【解决方案1】:
Model.removeAttribute("id");

更多文档removeAttribute

【讨论】:

  • 这是我们如何告诉 sequalize 避免自动生成 'id' 字段的示例。 const MyTable = db.define('mytable', { name: DataTypes.TEXT, description: DataTypes.TEXT, active: DataTypes.BOOLEAN }); TimeStarPayType.removeAttribute('id'); 这是使用旧表的链接。 sequelize.org/master/manual/legacy.html
猜你喜欢
  • 2017-10-12
  • 1970-01-01
  • 2021-02-01
  • 2020-03-28
  • 2017-08-29
  • 1970-01-01
  • 2018-10-29
  • 2016-08-21
  • 2016-11-15
相关资源
最近更新 更多