executeを使用するだけです :
with self.connection as cursor:
cursor.execute(open("schema.sql", "r").read())
ただし、psycopg2をautocommitに設定することもできます。 モードファースト
そのため、スクリプト独自のトランザクション管理を使用できます。
psycopg2が、一度にステートメントでファイルを読み取り、それをDBに送信する、よりスマートなモードを提供するのは良いことですが、現在のところ、私が知る限り、そのようなモードはありません。 $$に直面したときに正しく実行するには、かなり堅固なパーサーが必要です。 引用(およびその$delimiter$ deimiterが任意の識別子であるバリアント)、standard_conforming_strings 、E'' 文字列、入れ子関数本体など。
これはないことに注意してください 連携:
-
psqlを含むもの バックスラッシュコマンド - コピー..STDINから
- 非常に 長い入力
...したがって、pg_dumpからのダンプでは機能しません