当我试图在DB浏览器中的SQLite中插入值时,我会得到约束错误,但是当我使用knex (npm包)运行种子器时,它会传递FK约束,并在应该返回错误时插入。
发布于 2017-10-05 16:03:32
我以前的knexfile.js是这样的:
var knex = require('knex')({
dialect: 'sqlite3',
connection: {
filename: './database'
},
useNullAsDefault: true
});
它需要在这里激活foreign_keys的PRAGMA。若要这样做,请将其更改为:
var knex = require('knex')({
dialect: 'sqlite3',
connection: {
filename: './database'
},
pool: {
afterCreate: function (conn, cb) {
conn.run('PRAGMA foreign_keys = ON', cb)
}
},
useNullAsDefault: true
});
https://dba.stackexchange.com/questions/187815
复制