Table of contents

Version notes


Python 3.7 and the latest client library version is recommended.

However, if you are running an older version of Python, older versions of the CrateDB Python client library can be used.


The documentation is written for Python 3.

If you are using older versions of this client library with Python 2, you may find that you need to make adaptations to the instructions and sample code to get things working.

Consult the following table for compatibility notes:

Python Version Client Version Notes
Any < 0.16

Not supported:

2.6.x >= 0.15 Not supported.
2.7.x >= 0.22 Not supported.
3.3.x >= 0.22 Not supported.
3.4.x >= 0.22 Supported.


If you install via PyPI, a compatible library version is selected automatically.

So, for instance, if you use pip with Python 2.7, version 0.21.x of the client library will be installed.


Consult the following table for SQLAlchemy version compatibility notes:

Client Version SQLAlchemy Version Notes
Any 1.0 Supported.
>= 0.16.5 1.1 Supported.
>= 0.17 < 1.0 Not supported.


Consult the following table for CrateDB version compatibility notes:

Client Version CrateDB Version Notes
>= 0.15 Any Client SSL certificates are supported.
>= 0.20 Any Username authentication is supported.
>= 0.21 Any Password authentication is supported.
>= 0.22 Any Default schema selection is supported.
Any < 0.55 Default schema selection is not supported.
Any >= 2.1.x

Client needs to connect with a valid database user to access CrateDB.

The default CrateDB user is crate and has no password is set.

The enterprise edition of CrateDB allows you to create your own users.

Prior versions of CrateDB do not support this feature.

Implementation notes


Supported features

Currently, CrateDB only implements a subset of the SQL standard. Additionally, because CrateDB is distributed database that uses eventual consistency, some features typical of a more strongly consistent database are not available.

Because of this, some SQLAlchemy operations are not supported.

Consult the following table for specifics:

Category Methods Notes
DQL Supported.

Partially supported.

Consult the section on aggregate functions.

Joins and subqueries are should be work, but tests have not been written, so consider this an an experimental feature for now.
DML Supported.
Session CrateDB does not support transactions, so this method and other methods that work with transactions will not do anything.
Per the previous note, this method will only flush().

Version notes

Client Version CrateDB Version Notes
>= 0.17 Any


>= 0.18 Any


>= 0.22 >= 3.0


Older versions

For information about older versions of the client, consult the 0.14.2 changelog.