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.