새 버전의 SQLite에는 외래 키 제약 조건을 적용 할 수있는 기능이 있지만 이전 버전과의 호환성을 위해 각 데이터베이스 연결마다 별도로 설정해야합니다.Sqlite/SQLAlchemy : 외래 키를 적용하는 방법?
sqlite> PRAGMA foreign_keys = ON;
SQLAlchemy를 사용하고 있습니다. 어떻게 항상 켜져 있는지 확인하려면 어떻게해야합니까? 내가 시도 무엇 은 이것이다 :
engine = sqlalchemy.create_engine('sqlite:///:memory:', echo=True)
engine.execute('pragma foreign_keys=on')
... 그것은하지만 작동하지 않습니다 ... 나는 무엇을 놓치고있다!?
편집 : 내 진짜 문제는 SQLite가 하나 이상 설치되어 있고 파이썬이 최신 버전을 사용하고 있지 않다는 것입니다.
>>> import sqlite3
>>> print sqlite3.sqlite_version
3.3.4
방금 3.6.23을 다운로드하고 프로젝트 디렉토리에 exe 파일을 넣습니다! 어떤 .exe가 사용 중인지 파악하고 변경할 수 있습니까?
최신 SQLite는 다운로드하여 전술 한 바와 같이 pysqlite2 빌드 : 올바른 버전이 파이썬에 의해 실행시에 사용하고 있는지 확인
PRAGMA 문을 사용한 것과 같은 방법을 사용 했습니까? –
고마워, 나는 너무 일하고있어. 사실, 문제는 내 컴퓨터에서 SQLite를 여러 개 복사하는 것이 었습니다.이를 수정하고 PoolListener를 사용하면 완벽하게 작동했습니다! –
그것은 작동합니다! 그러나 그것과 함께 작동하도록 만드는 방법 ... – 42n4