PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

SQLAlchemy, Psycopg2 и Postgresql COPY

приетият отговор е правилен, но ако искате повече от просто коментарът на EoghanM да продължи, следното работи за мен при КОПИРАНЕ на таблица в CSV...

from sqlalchemy import sessionmaker, create_engine

eng = create_engine("postgresql://user:[email protected]:5432/db")
ses = sessionmaker(bind=engine)

dbcopy_f = open('/tmp/some_table_copy.csv','wb')

copy_sql = 'COPY some_table TO STDOUT WITH CSV HEADER'

fake_conn = eng.raw_connection()
fake_cur = fake_conn.cursor()
fake_cur.copy_expert(copy_sql, dbcopy_f)

sessionmaker не е необходимо, но ако имате навика да създавате двигателя и сесията едновременно, за да използвате raw_connection ще трябва да ги отделите (освен ако няма начин за достъп до двигателя чрез обекта на сесията, който не знам). sql низът, предоставен на copy_expert също не е единственият начин за това, има основен copy_to функция, която можете да използвате с подмножество от параметри, които бихте могли да поставите в нормален COPY ЗА запитване. Цялостното изпълнение на командата ми изглежда бързо, като копирам таблица от ~20000 реда.

http://initd.org/psycopg/docs/cursor.html#cursor.copy_tohttp://docs.sqlalchemy.org/en/latest/core/connections.html#sqlalchemy.engine.Engine.raw_connection



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да променя съществуващата колона като идентичност в PostgreSQL 11.1

  2. Как да приложим функция към всеки елемент от колона на масив в Postgres?

  3. Как да декодирате PostgreSQL bytea колона шестнадесетичен към int16/uint16 в r?

  4. Django:Кои са най-добрите практики за мигриране на проект от sqlite към PostgreSQL

  5. Как да попълните липсващите дати в PostgreSQL с помощта на generate_series