【发布时间】:2020-03-04 20:45:35
【问题描述】:
我需要将 onDelete 和 onUpdate 级联添加到迁移文件中的约束。
所以我做了一个 alter table,选择外键并在每个命令末尾使用 alter 方法链接。
class UpdateRecipientSchema extends Schema {
up () {
this.alter('deliveries', (table) => {
table.integer('recipient_id')
.unsigned()
.references('id')
.inTable('recipients')
.onDelete('CASCADE')
.onUpdate('CASCADE')
.notNullable()
.alter()
table.integer('courier_id')
.unsigned()
.references('id')
.inTable('couriers')
.notNullable()
.onDelete('CASCADE')
.onUpdate('CASCADE')
.alter()
})
}
down () {
this.alter('deliveries', (table) => {
table.integer('recipient_id')
.unsigned()
.references('id')
.inTable('recipients')
.notNullable()
.alter()
table.integer('courier_id')
.unsigned()
.references('id')
.inTable('couriers')
.notNullable()
.alter()
})
}
}
但我收到一条错误消息,指出这种关系的约束已经存在。错误:constraint "deliveries_courier_id_foreign" for relation "deliveries" already exists
如何在迁移中更新表的约束?
【问题讨论】:
标签: javascript node.js postgresql knex.js adonis.js