【发布时间】:2017-02-24 19:29:28
【问题描述】:
我在 sqlalchemy 中定义了下表架构,其中 user_id 是引用用户的 user_id 表的外键
class Manufacturer(Model):
__tablename__='Manufacturer'
Manufacturer_id=Column(Integer,primary_key=True,autoincrement=True)
name=Column(String(length=100),nullable=False)
description=Column(String(length=1000),nullable=False)
user_id=Column(Integer,ForeignKey(User.user_id),nullable=False)
但是当在 sqllite db 中创建表时,未将外键添加到表中,并且即使用户表没有用户 ID 值,也会插入条目
我搜索了这个问题,发现为了解决这个问题我们需要设置
PRAGMA foreign_keys = ON;
但我无法弄清楚如何使用我当前的 DB 配置来完成此操作
我有以下代码来创建引擎并使用 SQL 添加记录 引擎配置:-
engine=create_engine(SQLALCHEMY_DATABASE_URI)
_Session=orm.sessionmaker(autocommit=False,autoflush=True,bind=engine)
session=orm.scoped_session(_Session)
在表中添加条目的代码
man_details=Manufacturer(**param)
session.add(man_details)
session.commit()
请建议我如何从 python-Flask-SQLAlchemy 为 SQLlite3 中创建的表设置外键约束
【问题讨论】:
标签: python database sqlite session sqlalchemy