3

適切な sqlite バージョンでは、「PRAGMAforeign_keys = ON」によって外部キー制約を強制できます。ただし、ユーザーは接続を行うたびにデータベースにログインすることはできません。では、sqlalchemy/alembic の移行スクリプトでどのように機能させることができるのでしょうか? どうもありがとう!

4

3 に答える 3

7

SA SQLite ドキュメントの外部キー サポートを参照してください。

import sqlite3

from sqlalchemy.engine import Engine
from sqlalchemy import event

@event.listens_for(Engine, "connect")
def set_sqlite_pragma(dbapi_connection, connection_record):
    if type(dbapi_connection) is sqlite3.Connection:  # play well with other DB backends
       cursor = dbapi_connection.cursor()
       cursor.execute("PRAGMA foreign_keys=ON")
       cursor.close()
于 2012-12-05T08:44:49.630 に答える
0

SQLite にはログインがありません。

スクリプトで外部キーを有効にするには、PRAGMA foreign_keys = ONそのスクリプトにコマンドを追加するだけです。

于 2012-12-05T08:38:41.453 に答える