On Fri, 4 May 2018, Mike Bayer wrote:

you're looking for a table-level check constraint with IN:
table.append_constraint(
  CheckConstraint(table.c.data_type.in_('A', 'B', 'C'))
)

Mike,

  I'm missing how to properly use the above in my models.py module.

  For example:

class Sites(Base):
    __tablename__ = 'locations'

    site_id = Column(Integer, primary_key=True)
    site_name = Column(String(16), nullable=False)
    data_type = Column(String(12), nullable=False)
    source = Column(String(64))
    lat = Column(String(9))
    lon = Column(String(9))
    stream = Column(String(32))
    basin = Column(String(32))
    comment = Column(String)

    locations.append.constraint(
        CheckConstraint(locations.data_type_in('Biogical', 'Chemical', 
'Microbial', 'Physical', 'Multiple'))
        )

  Python shows me this error:

Traceback (most recent call last):
  File "./openEDMS.py", line 18, in <module>
    import models
  File "/home/rshepard/development/openEDMS/models.py", line 20, in <module>
    class Sites(Base):
  File "/home/rshepard/development/openEDMS/models.py", line 37, in Sites
    CheckConstraint(locations.data_type_in('Biogical', 'Chemical', 'Microbial', 
'Physical', 'Multiple'))
NameError: name 'locations' is not defined

  If I change the table-level constraint from the tablename (locations) to
the class name (Sites) python gives me the equivalent NameError. What syntax
error have I made here?

Regards,

Rich

--
SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 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