Skip to content

Instantly share code, notes, and snippets.

@marksteward
Created April 7, 2020 16:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save marksteward/1e1d271cb4ee9f9fa5c7144881bb7dea to your computer and use it in GitHub Desktop.
Save marksteward/1e1d271cb4ee9f9fa5c7144881bb7dea to your computer and use it in GitHub Desktop.
from sqlalchemy import create_engine, Column, ForeignKey, Integer, String
from sqlalchemy.orm import relationship, Session
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
metadata = Base.metadata
class Parent(Base):
__tablename__ = 'parent'
id = Column(Integer, primary_key=True)
name = Column(String, nullable=False, unique=True)
class Child(Base):
__tablename__ = 'child'
parent_id = Column(ForeignKey(Parent.id), primary_key=True)
name = Column(String, nullable=False, unique=True)
parent = relationship(Parent, backref='children')
engine = create_engine('sqlite://', echo=True)
session = Session(bind=engine)
metadata.bind = engine
metadata.create_all()
p = Parent(name='parent1')
c = Child(parent=p, name='child1')
session.add(p)
session.commit()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment