2017-10-01 14 views
0

私の 'users'テーブルには 'business'テーブルへの参照があります。Knex.js |外部キーのために 'knex seed:run'を2回実行するとエラーが発生する

私はknex seed:runは二回、私は次のエラーを取得する実行します。

error: update or delete on table "businesses" violates foreign key constraint "users_business_id_foreign" on table "users"

私の現在のシードは次のようになります。

exports.seed = (knex, Promise) => 
    knex('businesses').del() 
     .then(() => 
      knex('businesses').insert([ 
       {... 

Knex.jsでこの問題を解決するための従来の方法は何ですか?

答えて

0

使用しているデータベースによって異なります。しかし、従来の方法であるknexは、SQLデータベースを扱うときの一般的な方法とまったく同じです。ここで

はそれを行うには、いくつかの方法があります(そこにおそらくより多くの有効なこれを行うための方法です):

  • すべて削除し、あなたのビジネステーブルを参照している

    • 最初にそのテーブルのデータを削除し、単一のテーブル.withステートメント(外部キー制約はpostgresqlでクエリを実行した後にのみチェックされます)

    • トランザクション内のすべてのテーブルを削除し、最初の(MySQLの)

    • 切り捨て単一TRUNCATEの文(PostgreSQLの)

    内のすべてのテーブルとシーケンス
  • 関連する問題