pg8000_ ``postgresql+pg8000`` yes yes no yes yes
`PostgreSQL JDBC Driver`_ ``postgresql+zxjdbc`` no no yes yes yes
psycopg2_ ``postgresql+psycopg2``\* yes development no yes yes
-pypostgresql_ ``postgresql+pypostgresql`` no partial no yes yes
+pypostgresql_ ``postgresql+pypostgresql`` no yes no yes yes
**SQLite**
pysqlite_ ``sqlite+pysqlite``\* yes yes no yes yes
sqlite3_ ``sqlite+pysqlite``\* yes yes no yes yes
pg_db = create_engine('postgresql://scott:tiger@localhost/mydatabase')
pg_db = create_engine('postgresql+psycopg2://scott:tiger@localhost/mydatabase')
pg_db = create_engine('postgresql+pg8000://scott:tiger@localhost/mydatabase')
+ pg_db = create_engine('postgresql+pypostgresql://scott:tiger@localhost/mydatabase')
# postgresql on Jython
pg_db = create_engine('postgresql+zxjdbc://scott:tiger@localhost/mydatabase')
.. automodule:: sqlalchemy.dialects.postgresql.psycopg2
+py-postgresql Notes
+--------------------
+
+.. automodule:: sqlalchemy.dialects.postgresql.pypostgresql
+
pg8000 Notes
--------------
----------
URLs are of the form
-`postgresql+pg8000://user:password@host:port/dbname[?key=value&key=value...]`.
+``postgresql+pg8000://user:password@host:port/dbname[?key=value&key=value...]``.
Unicode
-------
Connecting
----------
-URLs are of the form `postgresql+psycopg2://user:password@host:port/dbname[?key=value&key=value...]`.
+URLs are of the form ``postgresql+psycopg2://user:password@host:port/dbname[?key=value&key=value...]``.
psycopg2-specific keyword arguments which are accepted by :func:`~sqlalchemy.create_engine()` are:
Connecting
----------
-URLs are of the form `postgresql+pypostgresql://user@password@host:port/dbname[?key=value&key=value...]`.
+URLs are of the form ``postgresql+pypostgresql://user@password@host:port/dbname[?key=value&key=value...]``.
"""
guarantee that an UPDATE statement will be issued (although you can
affect the outcome here).
- To detect if the column-based attributes on the object have net
+ To detect if the column-based attributes on the object have net
changes, and will therefore generate an UPDATE statement, use
``object_session(instance).is_modified(instance,
include_collections=False)``.