Skip to main content

SQLAlchemy integration for pyramid

Project description

https://travis-ci.org/wichert/pyramid_sqlalchemy.svg?branch=master

pyramid_sqlalchemy provides some basic glue to facilitate using SQLAlchemy with Pyramid.

SQLAlchemy relies on global state for a few things:

  • A MetaData instance which tracks all known SQL tables.

  • A base class for all models using the ORM.

  • A session factory.

Every application using SQLAlchemy must provides its own instance of these. This makes it hard create add-on packages that also use SQLAlchemy, since they either need to have their own SQLAlchemy state, which makes it hard to integrate them into your application, or they need to jump through multiple complex hoops to allow them share state with your application.

pyramid_sqlalchemy helps by providing a canonical location for the global SQLAlchemy state. In addition it provides a convenient way to configure SQLAlchemy in a Pyramid application.

from pyramid.config import Configurator
from pyramid_sqlalchemy import BaseObject

class MyModel(BaseObject):
    __tablename__ = 'my_model'
    ...

def main():
    config = Configurator()
    # Configure SQLAlchemy using settings from the .ini file
    config.include('pyramid_sqlalchemy')
    ...
    return config.make_wsgi_app()

Changelog

1.6 - January 4, 2016

  • Update transaction pytest fixture to not mock out transation.get() completely, but only the commit() transaction method. This fixes problems with code trying to write on the current transaction.

1.5 - December 30, 2015

  • Fix a compatibility error with the DatabaseTestCase class which could break functional test setup.

  • Code reorganisation: move tests outside the package; there is no point in installing them.

1.4 - November 25, 2015

  • Revert naming convention change. This change broke all existing data models which did not supply a constraint name everywhere. This is especially bad for types which implicitly create unnamed constraints, such as booleans and enums on dialects that do not have native support.

1.3 - November 23, 2015

  • Configure a default naming convention, as recommended by alembic). Pull request 3 from Marcin Lulek.

  • Fix a broken import in pyramid_sqlalchemy’s own test when running on Python 3.

  • Allow overriding the database used for testing with the pytest --sql-url option when using the DatabaseTestCase test class. For non-pytest users support the DB_URI environment variable as well.

1.2.2 - September 11, 2014

  • Add dependency on mock for Python <3.3. This fixes import problems who try to import pyramid_sqlalchemy.testing in production code.

1.2.1 - September 1, 2014

  • Move pyramid to a test-only dependency. This makes it simpler to use pyramid_sqlalchemy in non-pyramid contexts.

1.2 - August 30, 2014

  • Use unittest.mock when available. This removes the mock dependency on Python 3.

  • Tests no longer need to mock out pyramid_sqlalchemy.includeme; this is now handled by DatabaseTestCase and the py.test fixtures.

  • Automatically make py.test fixtures available externally. This removes the need to copy & paste them over from the documentation.

  • Fix error on pytest fixture example.

  • Setup Travis to automatically run tests on CPython 2.6, CPython 2.7, CPython 3.3, CPython 3.4 and PyPy.

1.1 - July 14, 2014

  • Add missing schema to the Pyramid-URL in the package description. This broke ReST rendering on the PyPI page.

  • Add a new enable_sql_two_phase_commit() configuration directive to enable two-phase commit.

  • Enable foreign key constraint checking for SQLite in DatabaseTestCase.

  • Use SQLAlchemy events instead of ZopeTransactionExtension to handle integration of zope.sqlalchemy and SQLAlchemy.

1.0 - July 13, 2014

  • First release.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyramid_sqlalchemy-1.6.tar.gz (16.4 kB view details)

Uploaded Source

Built Distribution

pyramid_sqlalchemy-1.6-py2.py3-none-any.whl (12.2 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pyramid_sqlalchemy-1.6.tar.gz.

File metadata

File hashes

Hashes for pyramid_sqlalchemy-1.6.tar.gz
Algorithm Hash digest
SHA256 377a18834e15ff59ba89c882be7d40bdc92ab5ad39a881ff2eba111b84f2418b
MD5 bda594ec10c4f85ba9a4191360eae7f3
BLAKE2b-256 f8ef1a7350be383d58efb806f1192ff09a8b2764082ef69719a20d2424d213b4

See more details on using hashes here.

File details

Details for the file pyramid_sqlalchemy-1.6-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pyramid_sqlalchemy-1.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 42176e3df63538ec80aaa9acf0abee759c67c52e7d63aa8863f3f1a1108de959
MD5 dd2189b3dec2cee892975a1d67fa120b
BLAKE2b-256 f01a17a9788b9d119dffeb5c3841c3a037d3af689da08259937f1f7aaa9f68d0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page