I have the following two models:
Class Encounter(Model):
__tablename__ = 'cp_service'
id = Column(Integer, primary_key=True, autoincrement=True)
master_service_id = Column(String(255))
admission_datetime = Column(DateTime)
admission_provider_id = Column(String(255))
admission_status = Column(String(255))
age_at_visit = Column(String(255))
attending_provider_id = Column(String(255))
center = Column(String(255))
department_name = Column(String(255))
discharge_datetime = Column(DateTime)
encounter_category = Column(String(255))
encounter_class = Column(String(255))
encounter_date = Column(DateTime)
encounter_setting = Column(String(255))
encounter_type = Column(String(255))
primary_care_provider_id = Column(String(255))
primary_service_yn = Column(String(255))
provider_id = Column(String(255))
serv_area_id_orig = Column(String(255))
service_id = Column(Integer)
patient_id = Column(Integer, ForeignKey('cp_patient.patient_id'))
patient = relationship("Patient", backref=backref("patientEncounter"),
lazy='eager', primaryjoin="Patient.patient_id==Encounter.patient_id")
class Patient(Model):
__tablename__ = 'cp_patient'
id = Column(Integer, primary_key=True, autoincrement=True)
first_name = Column(String(100))
middle_name = Column(String(80))
last_name = Column(String(80))
sex = Column(String(80))
race = Column(String(80))
birth_date = Column(DateTime)
ethnicity = Column(String(80))
race = Column(String(80))
patient_id = Column(Integer)
mrn = Column(String(80))
title = Column(String(80))
suffix = Column(String(80))
name_alias = Column(String(80))
addr_1 = Column(String(80))
addr_2 = Column(String(80))
addr_3 = Column(String(80))
city = Column(String(80))
state = Column(String(80))
country = Column(String(80))
zip = Column(String(80))
encounter = relationship("Encounter", backref=backref("Patient"), lazy=
'dynamic', primaryjoin="Patient.patient_id==Encounter.patient_id")
Where one patient can have many encounters.
I am able to load the patent model fine in a scaffolded list when I comment
out the encounter relationship in the last line (there are roughly 35K
patients), but when I link it to Encounters (1.7 million), then I am
running into major performance issues. I tried using lazy='dynamic', but
got an error that:
On relationship Encounter.patient, 'dynamic' loaders cannot be used with
many-to-one/one-to-one relationships and/or uselist=False.
What other options are there available to not load all the relations until
needed?
Thanks!
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.