Skip to content

jmcarp/sqlalchemy-postgres-copy

Repository files navigation

sqlalchemy-postgres-copy

Latest version Travis-CI

sqlalchemy-postgres-copy is a utility library that wraps the PostgreSQL COPY command for use with SQLAlchemy. The COPY command offers performant exports from PostgreSQL to TSV, CSV, or binary files, as well as imports from files to PostgresSQL tables. Using COPY is typically much more efficient than importing and exporting data using Python.

Installation

pip install -U sqlalchemy-postgres-copy

Usage

import postgres_copy
from models import Album, session, engine

# Export a CSV containing all Queen albums
query = session.query(Album).filter_by(artist='Queen')
with open('/path/to/file.csv', 'w') as fp:
    postgres_copy.copy_to(query, fp, engine, format='csv', header=True)

# Import a tab-delimited file
with open('/path/to/file.tsv') as fp:
    postgres_copy.copy_from(fp, Album, engine)