Stačí použít execute :
with self.connection as cursor:
cursor.execute(open("schema.sql", "r").read())
i když možná budete chtít nastavit psycopg2 na autocommit nejprve režim
takže můžete použít vlastní správu transakcí skriptu.
Bylo by hezké, kdyby psycopg2 nabízel chytřejší režim, kde by četl soubor v příkazu-at-a-time a odeslal jej do DB, ale v současnosti žádný takový režim, pokud vím, neexistuje. Potřeboval by poměrně solidní analyzátor, aby to udělal správně, když čelíte $$ citace (a jeho $delimiter$ varianta, kde deimiter může být libovolný identifikátor), standard_conforming_strings , E'' řetězce, těla vnořených funkcí atd.
Upozorňujeme, že to nebude pracovat s:
- cokoli, co obsahuje
psqlpříkazy zpětného lomítka - KOPÍROVAT .. OD STDIN
- velmi dlouhý vstup
... a proto nebude fungovat s výpisy z pg_dump