SQLAlchemy seeder.
Project description
sqlalchemyseed
Installation
pip install sqlalchemyseed
Dependencies
- SQAlchemy>=1.4.0
- jsonschema>=3.2.0
Getting Started
# main.py
from tests.db import session # import where your session is located.
from sqlalchemyseed import Seeder, load_entities_from_json, HybridSeeder
# load entities
entities = load_entities_from_json("data.json")
# use seeder if you are limited to using 'data' field or you do not query relationship from database
seeder = Seeder()
seeder.seed(entities, session) # session, optional, automatically add entities to session
# HybridSeeder to use 'filter' field, querying and assigning relationship that exist in the database
seeder = HybridSeeder(session)
seeder.seed(entities)
# for confirmation,
# you can check the added objects by printing session.new and session.dirty
print(session.new)
print(session.dirty)
No Relationship
// data.json
[
{
"model": "models.Person",
"data": {
"name": "You",
"age": 18
}
},
// when you have two or more objects of the same model, you can
{
"model": "models.Person",
"data": [
{
"name": "You",
"age": 18
},
{
"name": "Still You But Older",
"age": 40
}
]
}
]
One to One
// data.json
[
{
"model": "models.Person",
"data": {
"name": "John",
"age": 18,
// creates a job object
"job": {
"model": "models.Job",
"data": {
"job_name": "Programmer",
}
}
}
},
// or this, if you want to add relationship that exist
// in your database use 'filter' instead of 'data'
{
"model": "models.Person",
"data": {
"name": "Jeniffer",
"age": 18,
"job": {
"model": "models.Job",
"filter": {
"job_name": "Programmer",
}
}
}
}
]
One to Many
//data.json
[
{
"model": "models.Person",
"data": {
"name": "John",
"age": 18,
"items": [
{
"model": "models.Item",
"data": {
"name": "Pencil"
}
},
{
"model": "models.Item",
"data": {
"name": "Eraser"
}
}
]
}
}
]
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
sqlalchemyseed-0.1.1.tar.gz
(4.1 kB
view hashes)
Built Distribution
Close
Hashes for sqlalchemyseed-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 841c4c44d6ec58ab0fef6361e217ad545dac1e32c2393dbf6b60d70458324256 |
|
MD5 | f16a1753dc4e091eaf041d54e9ecd3b9 |
|
BLAKE2b-256 | 43000904c37ffad10f4c3207a6552bd03e07946f44f09475ae571eae8d245d3b |