SQLAlchemy ORM models for the ISPyB database
Project description
This provides a set of SQLAlchemy ORM models for the ISPyB database.
Installation
Install from pypi ispyb-models:
pip install ispyb-models
Basic Usage
from ispyb import models
dataCollection = models.DataCollection(
...
)
ses.add(dataCollection)
ses.commit()
...
datacollections = (
ses.query(
models.DataCollection
).filter(models.DataCollection.dataCollectionId == 1)
).first()
)
Manually generate the DB schema
Checkout the specific tag for a given ispyb-database
version:
$ git clone -b v1.18.1 https://github.com/ispyb/ispyb-database.git
$ # or, if you have an existing copy of the repository:
$ git checkout v1.18.1
Apply the schema patch in patches/circular_references.patch
to avoid circular foreign key references:
$ patch -p1 < ispyb-models/patches/circular_references.patch
Then run the ispyb-database
build.sh
script to generate the database:
$ sh build.sh
Generate the models with sqlacodegen
in src/ispyb/models/
:
sqlacodegen mysql+mysqlconnector://user:password@host:port/ispyb_build --noinflect --outfile _auto_db_schema.py
Do not edit the output file yourself
The resulting _auto_db_schema.py
should not be edited (other than automatic
formatting with black
or sorting of imports with isort
). All models are imported
into and accessed via the __init__.py
. Any modifications, e.g. injecting additional
relationships between models should be done here.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ispyb_models-1.0.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b96b41e0b84219ebb13fea926cf0e13ebe83561dcd816f2a6e5bd191a7c75e24 |
|
MD5 | 607af2082fea77c4ce386ee81e402e78 |
|
BLAKE2b-256 | 187ed852deeffc4c245b183c2757d91a6107b7fe6d29fa1ffd91703231a58284 |