2

テーブルのモデルの id フィールドを次のように定義しました。

id = Column(Integer(15, unsigned=True),
               nullable=False,
               server_default='0',
               primary_key=True,
               unique=True,
               autoincrement=True)

それに応じてデータベース(MySQL)テーブルを変更しましたが、モデルを作成してコミットしようとすると(SQLalchemy 0.7.8を使用しています)

m = MyModel(values without defining the id)
session.add(m)
session.commit()

このエラーが発生します

FlushError: Instance <MyModel at 0x4566990> has a NULL identity key. 
If this is an auto-generated value, check that the database table 
allows generation of new primary key values, and that the mapped 
Column object is configured to expect these generated values.  Ensure 
also that this flush() is not occurring at an inappropriate time, such    
as within a load() event.
4

2 に答える 2

0

server_default値を削除して解決しました

于 2012-10-23T14:15:06.417 に答える