What is RelStorage?

RelStorage is a storage implementation for ZODB that stores pickles in a relational database. PostgreSQL 9.0 and above, MySQL 5.0.32+ / 5.1.34+, and Oracle 10g and 11g are currently supported. RelStorage replaced the PGStorage project.


  • It is a drop-in replacement for FileStorage and ZEO.

  • There is a simple way to convert FileStorage to RelStorage and back again. You can also convert a RelStorage instance to a different relational database.

  • Designed for high volume sites: multiple ZODB instances can share the same database. This is similar to ZEO, but RelStorage does not require ZEO.

  • According to some tests, RelStorage handles high concurrency better than the standard combination of ZEO and FileStorage.

  • Whereas FileStorage takes longer to start as the database grows due to an in-memory index of all objects, RelStorage starts quickly regardless of database size.

  • Supports undo, packing, and filesystem-based ZODB blobs.

  • Both history-preserving and history-free storage are available.

  • Capable of failover to replicated SQL databases.

  • zodbconvert utility to copy/transform databases.

  • zodbpack utility to pack databases.

  • zodburi support.

  • Free, open source (ZPL 2.1)

See the rest of the documentation for more information.


RelStorage is hosted at GitHub:

Continuous integration

A test suite is run for every push and pull request submitted. Travis CI is used to test on Linux, and AppVeyor runs the builds on Windows.

https://travis-ci.org/zodb/relstorage.svg?branch=master https://ci.appveyor.com/api/projects/status/pccddlgujdoqvl83?svg=true Documentation Status

Builds on Travis CI automatically submit updates to coveralls.io to monitor test coverage.


Likewise, builds on Travis CI will automatically submit updates to landscape.io to monitor code health (adherence to PEP8, absence of common code smells, etc).

Code Health

Project URLs

Indices and tables