Knex.js | 运行 'knex seed:run' 由于外键两次给出错误
Knex.js | running 'knex seed:run' twice gives error because of foreign key
我的 'users' table 引用了 'business' table。
当我 运行 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解决这个问题的常规方法是什么?
取决于您使用的数据库。但是 knex
中的常规方式与使用 SQL 数据库时的常规方式完全相同。
这里有一些方法(可能还有很多更有效的方法):
首先删除引用您的业务的 table 数据 table
删除单个.with
语句中的所有table(外键约束仅在postgresql中运行查询后检查)
删除事务内的所有table并先关闭检查外键约束(mysql)
在单个 TRUNCATE
语句中截断所有 table 和序列 (postgresql)
我的 'users' table 引用了 'business' table。
当我 运行 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解决这个问题的常规方法是什么?
取决于您使用的数据库。但是 knex
中的常规方式与使用 SQL 数据库时的常规方式完全相同。
这里有一些方法(可能还有很多更有效的方法):
首先删除引用您的业务的 table 数据 table
删除单个
.with
语句中的所有table(外键约束仅在postgresql中运行查询后检查)删除事务内的所有table并先关闭检查外键约束(mysql)
在单个
TRUNCATE
语句中截断所有 table 和序列 (postgresql)