pyABC uses SQL databases for long-term storage of simulation and logging data, thus allowing to analyze and share results later.
An overview of what can be stored, and how to query the database, is given in the Data store API documentation <api_datastore>
.
pyABC ships with a small convenience utility that allows to export the SQL databases to other formats. Supported formats are:
- CSV
- feather
- json
- msgpack
- html
- hdf
- stata
An example call might look as follows:
abc-export --db results.db --out exported.feather --format feather
This exports the database "results.db" generated by pyABC to "exported.feather", which is written in in the feather format as indicated by the option --format feather
(the file extension of the exported file is not parsed).
Check abc-export --help
for further options to customize the export.
While we try to avoid it, sometimes changes to pyABC's storage format are unavoidable. In such cases, we try to provide correct migration of outdated databases to the new format, or in general across versions. If a database is outdated, pyABC will complain when trying to import it via the History <pyabc.storage.History>
class.
We use Alembic to migrate our SQLAlchemy based databases. Install it via:
pip install pyabc[migrate]
To migrate a database, run:
abc-migrate --src=SOURCE.db --dst=DESTINATION.db
with SOURCE.db
the name of the current outdated file, and DESTINATION.db
the name of the generated migrated file (we recommend using a different file).
See abc-migrate --help
for further information.