Python peewee创建表时外键约束的问题

Python peewee创建表时外键约束的问题,python,sqlite,foreign-keys,peewee,Python,Sqlite,Foreign Keys,Peewee,我有以下sqlite数据库表: CREATE TABLE IF NOT EXISTS Channel ( channel_id integer UNIQUE NOT NULL, channel_name text UNIQUE NOT NULL, PRIMARY KEY (channel_id) ); CREATE TABLE IF NOT EXISTS User_banned ( user_id integer NOT NULL, login_name

我有以下sqlite数据库表:

CREATE TABLE IF NOT EXISTS Channel (
    channel_id integer UNIQUE NOT NULL,
    channel_name text UNIQUE NOT NULL,
    PRIMARY KEY (channel_id)
);

CREATE TABLE IF NOT EXISTS User_banned (
    user_id integer NOT NULL,
    login_name text NOT NULL,
    channel_id integer NOT NULL,
    ban_timestamp real NOT NULL,
    PRIMARY KEY (user_id, channel_id, ban_timestamp),
    FOREIGN KEY (channel_id) REFERENCES channel (channel_id) ON DELETE CASCADE
);

CREATE TABLE IF NOT EXISTS Message_deleted (
    user_id integer NOT NULL,
    channel_id integer NOT NULL,
    ban_timestamp real NOT NULL,
    message_timestamp real NOT NULL,
    message text NOT NULL,
    PRIMARY KEY (user_id, message_timestamp),
    FOREIGN KEY (user_id, channel_id, ban_timestamp) REFERENCES User_banned (user_id, channel_id, ban_timestamp) ON DELETE CASCADE
);
我用pwiz生成了peewee模型,在所有外键的_delete='CASCADE'参数上添加了
,因为pwiz不生成它,并用pragmas连接到数据库
'foreign':1

我有以下代码供测试:

database.connect()
database.create_tables([Channel, UserBanned, MessageDeleted])

Channel.create(channel_id=1111, channel_name="channel1")
UserBanned.create(ban_timestamp=4551, login_name="d", channel=1111, user_id=511)
MessageDeleted.create(ban_timestamp=4551, message="message", message_timestamp=4511, channel=1111, user=511)

print(Channel.delete().execute())
database.close()
当我通过使用sqlitebrowser导入sql文件来创建表时,我没有遇到问题,但是如果表是由peewee创建的,我会遇到以下错误:
peewee.OperationalError:外键不匹配-“Message\u deleted”引用“User\u banked”