PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment puis-je écouter la création d'un modèle spécifique et en créer un nouveau (sur une table différente) basé sur celui-ci ?

Ou pourquoi ne pas créer le Referral à l'intérieur de l'User constructeur ?

from sqlalchemy.orm import Session, relationship, Mapper
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, ForeignKey, create_engine, event


Base = declarative_base()


class User(Base):
    __tablename__ = 'user'

    def __init__(self):
        self.referral = Referral()

    id = Column(Integer(), primary_key=True)    
    referral = relationship('Referral', uselist=False)


class Referral(Base):
    __tablename__ = 'referral'
    id = Column(Integer(), primary_key=True)
    user_id = Column(Integer(), ForeignKey('user.id'), nullable=False)


engine = create_engine('sqlite:///:memory:')
Base.metadata.create_all(engine)
session = Session(bind=engine)

session.add(User())
session.commit()

print(session.query(User).all())
print(session.query(Referral).all())