У меня есть таблица, где у меня есть обязательное ограничение внешнего ключа.Мне нужно сделать это ограничение необязательным, поэтому нет ограничений, если значение равно нулю, в противном случае оно должно применять ограничение.
Я пишу миграцию в Knex.js, и у меня есть следующая миграция.Каждое из 3 операторов работает изолированно, но если сделать столбец обнуляемым, я не могу добавить внешний ключ обратно.
exports.up = knex => {
return knex.schema
// Statement 1
.table("waypoints", table => {
table.dropForeign("port_id");
})
// Statement 2
.alterTable("waypoints", table => {
table
.integer("port_id")
.nullable()
.alter();
})
// Statement 3
.table("waypoints", table => {
table.foreign("port_id").references("port.id");
});
};
Как я могу сделать этот столбец необязательным?