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 sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to