#postgresql #knex.js
#postgresql #knex.js
Вопрос:
Я пытаюсь добавить ограничение в up
раздел миграции knex, а затем снова добавить это ограничение (отменить изменение) в down
раздел. Я хочу сохранить таблицу и все ее столбцы, но удалить unique
index
ограничения и из одного из этих столбцов. Это то, что у меня есть до сих пор:
exports.up = function(knex) {
return knex.schema
.table('menuItems', tbl => {
tbl.dropUnique("itemName")
tbl.dropIndex("itemName")
// ^these will leave the column but remove the constraints,
// correct?
});
};
exports.down = function(knex) {
// What do I do here?
};
Предполагая, что в моем текущем up
я действительно просто удаляю ограничение, а не столбец, мой вопрос таков: как мне добавить ограничения обратно в существующий столбец (в down
) без создания нового столбца?
(Я довольно неуверенно отношусь к миграции knex, и у меня возникают проблемы с поиском примеров в Интернете, поэтому, если у кого-нибудь есть ссылки на полные примеры некоторых базовых миграций, это также может быть полезно для меня.)
Ответ №1:
На самом деле вы правильно удаляете ограничения в up
! В вашей down
функции вы можете добавлять ограничения к таблице со следующим синтаксисом:
exports.up = function(knex) {
return knex.schema
.table('menuItems', tbl => {
tbl.unique('itemName');
tbl.index('itemName');
})
};
Для получения дополнительной информации ознакомьтесь с документацией Schema Index и Schema Unique!