Можно ли урезать таблицу с ограничениями внешнего ключа, чтобы все строки в других таблицах были удалены?Knex обрезать таблицу с ограничениями внешнего ключа
Я не вижу в документации для перехода к методу knex('tableName').truncate()
.
Можно ли урезать таблицу с ограничениями внешнего ключа, чтобы все строки в других таблицах были удалены?Knex обрезать таблицу с ограничениями внешнего ключа
Я не вижу в документации для перехода к методу knex('tableName').truncate()
.
Я не нашел встроенный способ сделать это, так что я просто капля в нестандартном режиме:
knex.raw('TRUNCATE TABLE users, products CASCADE')
Вы также можете установить это произойдет автоматически в ваших миграциях:
exports.up = function(knex) {
return knex.schema.createTable('users_products', (t) => {
t.uuid('id').primary().defaultTo(knex.raw('uuid_generate_v4()'));
t.uuid('user_id').notNullable().references('id').inTable('users').onDelete('CASCADE');
t.uuid('product_id').notNullable().references('id').inTable('products').onDelete('CASCADE');
});
};
В Knexjs теперь есть метод truncate()
.
knex('accounts').truncate()
Outputs:
truncate `accounts`
Может не работать для всех случаев, но должно быть в порядке для удовлетворения основных потребностей усечения.