RWTH Aachen Computer Science i5/dbis assets for Lecture Datenbanken und Informationssysteme
Project description
DBIS Schema Creator
Create a schema for SQLite databases and populate it using object-oriented programming. Also draw the corresponding er-diagram.
Installation
pip install dbis-schema-creator
Usage
from schema_creator import *
from erdiagram import ER
from faker import Faker
fake = Faker()
# Create a Table object (sqlalchemy style)
class Users(Table):
# Create tables
user_id = Column(Integer, primary_key=True)
username = Column(String(50))
# Optionally set the table name. Default is the lowercase class name
__tablename__ = 'users'
# Specify how to populate the table (e.g., using faker or random)
def populate(session, seed=None):
for _ in range(100):
user = Users(username=fake.name())
session.add(user)
# Specify how to draw the er-diagram
def to_er_diagram():
g = ER()
g.add_node("User")
g.add_attribute("User", "user_id", isPK=True)
g.add_attribute("User", "username")
return g
class Posts(Table):
post_id = Column(Integer, primary_key=True)
user_id = Column(Integer, ForeignKey('users.user_id'))
text = Column(String(1000))
depedencies = {Users} # specify the tables that this table depends on. Default is none
def populate(session, seed=None):
# get already populated user table
users = session.query(Users).all()
for _ in range(1000):
user = random.choice(users)
post = Posts(user_id=user.user_id, text=fake.text())
session.add(post)
def to_er_diagram():
g = ER()
g.add_node("Post", isWeak=True)
g.add_attribute("Post", "post_id", isPK=True, isWeak=True)
g.add_attribute("Post", "user_id")
g.add_attribute("Post", "text")
g.add_relation("User", "posts", "Post", "1", "m", isWeak=True)
return g
# Create the schema factory
tables = {Users, Posts}
factory = SchemaFactory(tables)
# populate the table
factory.populate()
# create the schema
schema = factory.to_sql()
# create the er-diagram
er_diagram = factory.to_er_diagram()
# draw the er diagram
digraph = er_diagram.draw()
digraph.render('er-diagram', format='png', view=True)
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
File details
Details for the file dbis-schema-creator-0.1.0.tar.gz
.
File metadata
- Download URL: dbis-schema-creator-0.1.0.tar.gz
- Upload date:
- Size: 6.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70ade58565ed8efb3e8f589c31f7cdd282c30b3008d61099d6ce62ba4443e597 |
|
MD5 | b0b4de051a8481853849d9f101cd1595 |
|
BLAKE2b-256 | bd48093927821074ded4b1a3d007d64113e82b065d25dccff99aeaf4047197a1 |
Provenance
File details
Details for the file dbis_schema_creator-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: dbis_schema_creator-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | de7a9740e2e39c96c31be0f2702d1603c0f66dad66597fdc1754f19677ab719b |
|
MD5 | 149312b8a0720257d5c2c5bd060a3247 |
|
BLAKE2b-256 | 84f0795ecfb40d87a41805e22a8eb3f2c15b8ef941081a8a87695875dc340d4d |