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
psql
příkazy zpětného lomítka - KOPÍROVAT .. OD STDIN
- velmi dlouhý vstup
... a proto nebude fungovat s výpisy z pg_dump