I have 2 classes: Base = declarative_base()
class Parent(Base): __tablename__ = 'parent' id = Column(Integer, primary_key=True) children = relationship("Child", cascade="all") class Child(Base): __tablename__ = 'child' id = Column(Integer, primary_key=True) parent_id = Column(Integer, ForeignKey('parent.id'), nullable=False) details = Column(Text(), nullable=False) I recently added nullable=False to the Child.parent_id column, and now the following code produces an error. p = self.session.query(Parent).filter_by(id=1234).one() p.children = [Child(details=x) for x in x_list] # don't think content of x_list is relevant self.session.commit() File "C:\Python27\lib\site-packages\sqlalchemy-0.7.1-py2.7.egg \sqlalchemy\engine\default.py", line 325, in do_execute cursor.execute(statement, parameters) IntegrityError: (IntegrityError) child.parent_id may not be NULL u'UPDATE child SET parent_id=? WHERE child.id = ?' (None, 1) Why is it generating this particular UPDATE statement? Shouldn't it add the correct parent_id from the Parent object, not None? Even if I add 'parent_id=1234' into the Child() constructor, it still attempts to set parent_id to None with this UPDATE. What am I doing wrong? -- Ben Sizer -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.