Anda cukup menggunakan execute
:
with self.connection as cursor:
cursor.execute(open("schema.sql", "r").read())
meskipun Anda mungkin ingin menyetel psycopg2 ke autocommit
modus dulu
sehingga Anda dapat menggunakan manajemen transaksi skrip sendiri.
Akan lebih baik jika psycopg2 menawarkan mode yang lebih cerdas di mana ia membaca file dalam pernyataan sekaligus dan mengirimkannya ke DB, tetapi saat ini tidak ada mode seperti itu sejauh yang saya tahu. Diperlukan parser yang cukup solid untuk melakukannya dengan benar ketika berhadapan dengan $$
mengutip (dan $delimiter$
varian di mana deimiter dapat berupa pengenal apa pun), standard_conforming_strings
, E''
string, badan fungsi bersarang, dll.
Perhatikan bahwa ini tidak bekerja dengan:
- apa pun yang mengandung
psql
perintah garis miring terbalik - SALIN .. DARI STDIN
- sangat masukan panjang
... dan karenanya tidak akan berfungsi dengan dump dari pg_dump