Giter Site home page Giter Site logo

adr-007 / sqlalchemy-redshift Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sqlalchemy-redshift/sqlalchemy-redshift

0.0 0.0 2.0 527 KB

Amazon Redshift SQLAlchemy Dialect

Home Page: https://sqlalchemy-redshift.readthedocs.org/en/latest/

License: MIT License

Shell 0.26% Python 99.74%

sqlalchemy-redshift's Introduction

sqlalchemy-redshift

Amazon Redshift dialect for SQLAlchemy.

Installation

The package is available on PyPI:

pip install sqlalchemy-redshift

Warning

This dialect requires either redshift_connector or psycopg2 to work properly. It does not provide it as required, but relies on you to select the distribution you need:

  • psycopg2 - standard distribution of psycopg2, requires compilation so few system dependencies are required for it
  • psycopg2-binary - already compiled distribution (no system dependencies are required)
  • psycopg2cffi - pypy compatible version

See Psycopg2's binary install docs for more context on choosing a distribution.

Usage

The DSN format is similar to that of regular Postgres:

>>> import sqlalchemy as sa
>>> sa.create_engine('redshift+psycopg2://[email protected]:5439/database')
Engine(redshift+psycopg2://[email protected]:5439/database)

See the RedshiftDDLCompiler documentation for details on Redshift-specific features the dialect supports.

Running Tests

Tests are ran via tox and can be run with the following command:

$ tox

However, this will not run integration tests unless the following environment variables are set:

  • REDSHIFT_HOST
  • REDSHIFT_PORT
  • REDSHIFT_USERNAME
  • PGPASSWORD (this is the redshift instance password)
  • REDSHIFT_DATABASE
  • REDSHIFT_IAM_ROLE_ARN

Note that the IAM role specified will need to be associated with redshift cluster and have the correct permissions to create databases and tables as well drop them. Exporting these environment variables in your shell and running tox will run the integration tests against a real redshift instance. Practice caution when running these tests against a production instance.

Continuous Integration (CI)

Project CI is built using AWS CodePipeline and CloudFormation. Please see the ci/ folder and included README.txt for details on how to spin up the project's CI.

Releasing

To perform a release, you will need to be an admin for the project on GitHub and on PyPI. Contact the maintainers if you need that access.

You will need to have a ~/.pypirc with your PyPI credentials and also the following settings:

[zest.releaser]
create-wheels = yes

To perform a release, run the following:

python -m venv ~/.virtualenvs/dist
workon dist
pip install -U pip setuptools wheel
pip install -U tox zest.releaser
fullrelease  # follow prompts, use semver ish with versions.

The releaser will handle updating version data on the package and in CHANGES.rst along with tagging the repo and uploading to PyPI.

sqlalchemy-redshift's People

Contributors

adr-007 avatar bbayles avatar binarymatt avatar bouk avatar brooke-white avatar cpcloud avatar dargueta avatar djgoku avatar eeshugerman avatar ewengillies avatar gmcrocetti avatar graingert avatar grayan avatar haleemur avatar jasonamyers avatar jcampbell avatar jkeelan avatar jklukas avatar jleclanche avatar ls-aron-kyle avatar matthewgdv avatar mbrunthaler avatar mheilman avatar mjschultz avatar mpatek avatar ms32035 avatar oyiptong avatar solackerman avatar tenzer avatar tirkarthi avatar

Forkers

cedarai ektar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.