Saltar al contenido

Ejecute el esquema .sql en psycopg2 en Python

Te recomendamos que revises esta respuesta en un entorno controlado antes de enviarlo a producción, saludos.

Solución:

solo puedes usar execute:

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

aunque es posible que desee configurar psycopg2 para autocommit mode primero para que pueda usar la propia gestión de transacciones del script.

Sería bueno si psycopg2 ofreciera un modo más inteligente en el que leyera el archivo en una declaración a la vez y lo enviara a la base de datos, pero en la actualidad no existe tal modo, que yo sepa. Necesitaría un analizador bastante sólido para hacerlo correctamente cuando se enfrente a $$ citando (y su $delimiter$ variante donde el delimitador puede ser cualquier identificador), standard_conforming_strings, E'' cadenas, cuerpos de funciones anidadas, etc.

Tenga en cuenta que esto no trabajar con:

  • cualquier cosa que contenga psql comandos de barra invertida
  • COPIAR .. DESDE STDIN
  • muy entrada larga

… y por lo tanto no funcionará con volcados de pg_dump

No puedo responder a los comentarios de la respuesta seleccionada por falta de reputación, así que haré una respuesta para ayudar con la COPY tema.

Dependiendo del volumen de su base de datos,pg_dump --inserts salidas INSERTen lugar de COPYs

Acuérdate de que tienes permiso de reseñar si encontraste tu atolladero .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *