2016-04-07 5 views
5

他のテーブル内のすべての行も削除されるように、外部キー制約付きのテーブルを強制的に切り捨てることはできますか?外部キー制約付きのKnex truncate table

knex('tableName').truncate()メソッドに渡すオプションがドキュメントに表示されません。

答えて

4

私はそれを行う方法で構築発見していないので、私はちょうどrawモードにドロップします。

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'); 
    }); 
}; 
-2

Knexjsにtruncate()メソッドが追加されました。

すべてのケースで機能するわけではありませんが、基本的な切り捨ての必要性には問題ありません。