Project: pgcopy

Fast db insert with postgresql binary copy

Project Details

Latest version
1.5.0
Home Page
https://pgcopy.readthedocs.io/en/latest/
PyPI Page
https://pypi.org/project/pgcopy/

Project Popularity

PageRank
0.0032222876911087066
Number of downloads
68116

.. home-start

pgcopy

.. image:: https://travis-ci.org/altaurog/pgcopy.svg?branch=master :target: https://travis-ci.org/altaurog/pgcopy

.. image:: https://coveralls.io/repos/github/altaurog/pgcopy/badge.svg?branch=master :target: https://coveralls.io/github/altaurog/pgcopy?branch=master

.. image:: https://img.shields.io/pypi/l/pgcopy.svg :target: https://pypi.org/project/pgcopy/

.. image:: https://img.shields.io/pypi/wheel/pgcopy.svg :target: https://pypi.org/project/pgcopy/

.. image:: https://img.shields.io/pypi/pyversions/pgcopy.svg :target: https://pypi.org/project/pgcopy/

Use pgcopy_ for fast data loading into PostgreSQL with binary copy_.

.. _binary copy: http://www.postgresql.org/docs/9.3/static/sql-copy.html .. _pgcopy: https://pgcopy.readthedocs.io/en/latest/

Features

  • Support for many data types
  • Support for multi-dimensional array types
  • Support for schema and schema search path
  • Transparent string encoding
  • Utility for replacing entire table

Quickstart

.. quickstart-start

::

from datetime import datetime
from pgcopy import CopyManager
import psycopg2
cols = ('id', 'timestamp', 'location', 'temperature')
now = datetime.now()
records = [
        (0, now, 'Jerusalem', 72.2),
        (1, now, 'New York', 75.6),
        (2, now, 'Moscow', 54.3),
    ]
conn = psycopg2.connect(database='weather_db')
mgr = CopyManager(conn, 'measurements_table', cols)
mgr.copy(records)

# don't forget to commit!
conn.commit()

.. home-end

Supported datatypes

pgcopy supports the following PostgreSQL scalar types:

  • bool
  • smallint
  • integer
  • bigint
  • real
  • double precision
  • char
  • varchar
  • text
  • bytea
  • enum types
  • date
  • time
  • timestamp
  • timestamp with time zone
  • numeric
  • json
  • jsonb
  • uuid
  • arrays

Documentation

Read the docs._

.. Read the docs.: pgcopy

See Also

cpgcopy_, a Cython implementation, about twice as fast.

.. _binary copy: http://www.postgresql.org/docs/9.3/static/sql-copy.html .. _psycopg2: https://pypi.org/project/psycopg2/ .. _pytz: https://pypi.org/project/pytz/ .. _pytest: https://pypi.org/project/pytest/ .. _cpgcopy: https://github.com/altaurog/cpgcopy .. _Tox: https://tox.readthedocs.io/en/latest/