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
Close
Hashes for dbis-schema-creator-0.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70ade58565ed8efb3e8f589c31f7cdd282c30b3008d61099d6ce62ba4443e597 |
|
MD5 | b0b4de051a8481853849d9f101cd1595 |
|
BLAKE2b-256 | bd48093927821074ded4b1a3d007d64113e82b065d25dccff99aeaf4047197a1 |
Close
Hashes for dbis_schema_creator-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | de7a9740e2e39c96c31be0f2702d1603c0f66dad66597fdc1754f19677ab719b |
|
MD5 | 149312b8a0720257d5c2c5bd060a3247 |
|
BLAKE2b-256 | 84f0795ecfb40d87a41805e22a8eb3f2c15b8ef941081a8a87695875dc340d4d |