我正在阅读sequelize文档,我不确定是否有办法删除列上的主键约束。
答案 0 :(得分:1)
对我有用的是放弃sql,不确定我做错了什么,但我尝试的其他任何东西似乎都没有用。
来自:https://github.com/sequelize/sequelize/issues/313
up: function (queryInterface, Sequelize) {
return queryInterface.sequelize.query('ALTER TABLE my_table DROP PRIMARY KEY');
}
答案 1 :(得分:0)
是的,使用changeColumn并提供一个完整的新列定义(与原始列相同),但没有主键。
答案 2 :(得分:0)
以下代码将删除表的主键:
up: function (queryInterface, Sequelize) {
return queryInterface.removeConstraint('table_name', 'PRIMARY');
}
,这消除了外键之类的约束:
up: function (queryInterface, Sequelize) {
return queryInterface.removeConstraint('table_name', 'constraint_name');
}
答案 3 :(得分:0)
示例代码:
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.removeConstraint('myTable', 'myTable_pkey'); // myTable_pkey = name of constraint
},
down: (queryInterface, Sequelize) => {
return queryInterface.addConstraint('myTable', {
fields: ['id'],
type: 'primary key',
name: 'myTable_pkey'
});
}
};