sql >> Database >  >> RDS >> PostgreSQL

Voer het .sql-schema uit in psycopg2 in Python

Je kunt gewoon execute . gebruiken :

with self.connection as cursor:
    cursor.execute(open("schema.sql", "r").read())

hoewel je misschien psycopg2 wilt instellen op autocommit modus eerst zodat u het eigen transactiebeheer van het script kunt gebruiken.

Het zou leuk zijn als psycopg2 een slimmere modus zou aanbieden waarin het het bestand in een verklaring-voor-een-tijd leest en naar de DB stuurt, maar op dit moment is er geen dergelijke modus voor zover ik weet. Het heeft een redelijk solide parser nodig om het correct te doen wanneer het wordt geconfronteerd met $$ citeren (en zijn $delimiter$ variant waarbij de deimiter elke identifier kan zijn), standard_conforming_strings , E'' strings, geneste functieteksten, enz.

Merk op dat dit niet werken met:

  • alles dat psql . bevat backslash-opdrachten
  • KOPIE .. VAN STDIN
  • heel lange invoer

... en werkt daarom niet met dumps van pg_dump



  1. Efficiënt elke 15 minuten een enorme tijdreekstabel opvragen voor één rij

  2. MySQL streepjes toevoegen aan UUID in een tabel

  3. sql join two table

  4. PHP om afbeeldingen op te slaan in MySQL of niet?