The vanilla dialects for connecting to PostgreSQL with SQLAlchemy will employ a few behaviors that strictly expect a PostgreSQL server on the other end. However, some operations may croak on databases which only offer wire-compatibility with PostgreSQL.
The dialects provided by sqlalchemy-postgresql-relaxed
are building upon
the vanilla SQLAlchemy dialects, but will disable a few PostgreSQL specifics.
postgresql+psycopg
: Accept non-conforming server version responses.postgresql+psycopg
: Don't issueSHOW STANDARD_CONFORMING_STRINGS
inquiry.postgresql+asyncpg
: Don't strictly expect JSON and JSONB codecs.
The corresponding dialect identifiers are:
postgresql+psycopg_relaxed
postgresql+asyncpg_relaxed
They can be used within SQLAlchemy database URL identifiers as usual.
# psycopg synchronous
create_engine(
url="postgresql+psycopg_relaxed://crate@localhost/acme",
isolation_level="AUTOCOMMIT",
use_native_hstore=False)
# psycopg asynchronous
create_async_engine(
url="postgresql+psycopg_relaxed://crate@localhost/acme",
isolation_level="AUTOCOMMIT",
use_native_hstore=False)
# asyncpg
create_async_engine(
url="postgresql+asyncpg_relaxed://crate@localhost/acme",
isolation_level="AUTOCOMMIT")
pip install --upgrade sqlalchemy-postgresql-relaxed
To install the latest development version from the repository, invoke:
pip install --upgrade git+https://github.com/pyveci/sqlalchemy-postgresql-relaxed
Every kind of contribution, feedback, or patch, is much welcome. Create an issue or submit a patch if you think we should include a new feature, or to report or fix a bug.
In order to setup a development environment on your workstation, please head over to the development sandbox documentation. When you see the software tests succeed, you should be ready to start hacking.
The project is licensed under the terms of the MIT license, see LICENSE.