PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Thực thi lược đồ .sql trong psycopg2 bằng Python

Bạn chỉ có thể sử dụng execute :

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

mặc dù bạn có thể muốn đặt psycopg2 thành autocommit chế độ đầu tiên để bạn có thể sử dụng quản lý giao dịch của chính tập lệnh.

Sẽ thật tuyệt nếu psycopg2 cung cấp một chế độ thông minh hơn, nơi nó đọc tệp trong một câu lệnh tại một thời điểm và gửi nó đến DB, nhưng hiện tại thì không có chế độ nào như tôi biết. Nó sẽ cần một trình phân tích cú pháp khá vững chắc để thực hiện chính xác khi đối mặt với $$ trích dẫn (và $delimiter$ của nó biến thể trong đó dấu phân cách có thể là bất kỳ số nhận dạng nào), standard_conforming_strings , E'' chuỗi, phần thân hàm lồng nhau, v.v.

Lưu ý rằng điều này sẽ không làm việc với:

  • bất kỳ thứ gì có chứa psql lệnh gạch chéo ngược
  • SAO CHÉP .. TỪ STDIN
  • rất đầu vào dài

... và do đó sẽ không hoạt động với kết xuất từ ​​pg_dump



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nâng cấp Slony-I 2.0.x lên phiên bản 2.1.x mới nhất

  2. java -postgresql id được chèn lần cuối khi chèn không nhận được

  3. Làm cách nào để thêm một Cột mới trong bảng sau cột thứ 2 hoặc thứ 3 trong Bảng bằng cách sử dụng postgres?

  4. Khai báo cấu trúc tuple của một bản ghi trong PL / pgSQL

  5. Ai có bất kỳ tài liệu nào về các quy trình nền PostgreSQL?