2016-04-09 7 views
1

Zuvor Prüfung würde eine Ausnahme ausgelöst, wenn fürSQLAlchemy andernfalls nicht NULL-Constraint zu fangen, wenn Primärschlüssel wahr

Column(Integer, nullable=False) 

Jetzt in None vorbei, wenn ich es ändern Primärschlüssel um wahr zu sein, ist es nicht mehr eine Ausnahme auslöst

Column(Integer, nullable=False, primary_key=True) 

Ich habe eine separate CheckConstraint() für NOT NULL versucht, aber es immer noch nicht beschweren.

Wie kann ich es wieder beschweren, wenn ich versuche, einen None/Null-Wert dafür zu begehen?

Antwort

1

SQLAlchemy defaults to autoincrement=True for primary key Integer columns - daher in Ihrem zweiten Fall, NULL wird nie tatsächlich eingefügt, und deshalb ist die Einschränkung immer noch erfüllt.

autoincrement=False Einstellung sollten Sie das Verhalten erhalten Sie wollen:

Column(Integer, nullable=False, primary_key=True, autoincrement=False) 
+1

Danke, arbeitete diese. Ich werde weiterhin versuchen, mich durch diesen Weg zu watscheln. Danke auch für den Link. – donkon