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

Đặt lược đồ cho tất cả các truy vấn của một kết nối trong psycopg2:Bắt điều kiện chủng tộc khi đặt search_path

Tôi nghĩ rằng một giải pháp thanh lịch hơn sẽ là đặt search_path trong options tham số của connect() , như vậy:

def connect(conn_config_file = 'Commons/config/conn_commons.json'):
    with open(conn_config_file) as config_file:    
        conn_config = json.load(config_file)

    schema = conn_config['schema']
    conn = psycopg2.connect(
        dbname=conn_config['dbname'],
        user=conn_config['user'],
        host=conn_config['host'],
        password=conn_config['password'],
        port=conn_config['port'],
        options=f'-c search_path={schema}',
    )
    return conn

Tất nhiên, bạn có thể sử dụng "tùy chọn" như một phần của chuỗi kết nối. Nhưng việc sử dụng các đối số từ khóa ngăn chặn tất cả những rắc rối với việc nối chuỗi.

Tôi đã tìm thấy giải pháp này trong yêu cầu tính năng psycopg2 này . Đối với bản thân thông số "options", nó được đề cập đến tại đây .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tối ưu hóa PostgreSQL để kiểm tra nhanh

  2. Làm thế nào để một Hàm được lưu trữ Postgres có thể trả về một bảng

  3. Cách Cos () hoạt động trong PostgreSQL

  4. Làm thế nào để chuyển đổi cơ sở dữ liệu trong postgres?

  5. Sử dụng mệnh đề EXCEPT trong PostgreSQL