A backend for ZODB that stores pickles in a relational database.
Python Other
Latest commit a1f3b23 Feb 10, 2017 @jamadden jamadden committed on GitHub Merge pull request #168 from zodb/issue166
Wrap lines at 100. Fixes #166.

README.rst

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

Features

  • 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 databases.
  • Free, open source (ZPL 2.1)

Documentation

Documentation including installation instructions is hosted on readthedocs.

The complete changelog is also there.

https://readthedocs.org/projects/relstorage/badge/?version=latest

Development

RelStorage is hosted at GitHub:

https://github.com/zodb/relstorage

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

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

https://coveralls.io/repos/zodb/relstorage/badge.svg?branch=master&service=github

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