Skip to main content

No project description provided

Project description

sqlalchemyseed

SQLAlchemy seeder. One-to-one, one-to-many, many-to-many relationship support.

Installation

pip install sqlalchemyseed

Dependencies

  • SQAlchemy>=1.4.0

Getting Started

# main.py
from db import session  # import where your session is located.
from sqlalchemyseed import create_objects
from sqlalchemyseed import load_entities_from_json

entities = load_entities_from_json("data.json")

# create_objects returns the objects created, while automatically added them to the session
# auto_add, add to session every time an object is created, useful when you have 'filter' field
objects = create_objects(entities, session, auto_add=True)

# you can check the added objects by printing session.new
print(session.new)

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


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.0.2.tar.gz (3.7 kB view hashes)

Uploaded Source

Built Distribution

sqlalchemyseed-0.0.2-py3-none-any.whl (3.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page