この方法で sqlalchemy.schema.CheckConstraint を使用しようとしています:
themes2tags_table = Table('themes2tags', Base.metadata,
Column('theme_id', String(32), ForeignKey('tags.id')),
Column('tag_id', String(32), ForeignKey('tags.id')),
PrimaryKeyConstraint(['theme_id', 'tag_id']),
CheckConstraint("substr(theme_id,1,1)='3'"))
(タグテーブルに対する多対多の自己参照関係を意味し、テーマは定義済みのプレフィックスを持つタグであることは明らかです)、最終的には
...CheckConstraint("substr(theme_id,1,1)='3'")
File "build\bdist.win32\egg\sqlalchemy\schema.py", line 303, in __new__
File "build\bdist.win32\egg\sqlalchemy\schema.py", line 370, in _init
File "build\bdist.win32\egg\sqlalchemy\schema.py", line 64, in _init_items
File "build\bdist.win32\egg\sqlalchemy\events.py", line 234, in _set_parent_wi
th_dispatch
File "build\bdist.win32\egg\sqlalchemy\schema.py", line 2133, in _set_parent
File "build\bdist.win32\egg\sqlalchemy\schema.py", line 1909, in _set_parent
File "build\bdist.win32\egg\sqlalchemy\schema.py", line 1883, in _set_parent
File "build\bdist.win32\egg\sqlalchemy\sql\expression.py", line 2213, in add
AttributeError: 'list' object has no attribute 'key'
ここでどこが間違っていますか?これらの状況でそのような制約を持つことは可能ですか?
現在のバックエンドは sqlite ですが、将来的に Postgres に移行することを検討しているため、より汎用性の低いレシートを探しています。
更新: sqlalchemy 0.7.5