sql >> Databáze >  >> RDS >> PostgreSQL

Spusťte schéma .sql v psycopg2 v Pythonu

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



  1. Hierarchické dotazy v SQL Server 2005

  2. Přidejte omezení datetime do vícesloupcového částečného indexu PostgreSQL

  3. jak zajistit, aby tento dotaz vracel také řádky s hodnotou počtu 0?

  4. Závažná chyba PHP:Volání nedefinované funkce mysql_connect()