首页 > 解决方案 > 同时使用索引和 UniqueConstraint 时的 SQLAlchemy KeyError

问题描述

当我在我的表定义中包含 aUniqueConstraintIndex时,我得到一个 KeyError。UniqueConstraint但是,如果我单独或单独指定,错误就会消失Index。我正在使用SQLAlchemy==1.3.8.

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
from sqlalchemy.schema import Index, UniqueConstraint

Base = declarative_base()


class A(Base):
    __tablename__ = 'table_a'
    id = Column(Integer, primary_key=True)
    a = Column(String(32))
    b = Column(String(32))

UniqueConstraint('a_unique_constraint', A.a, A.b)
Index('a_index', A.a, A.b)

回溯(最近一次通话最后):文件“/Users/ryan.zotti/Documents/repos/recommendations/orm_example.py”,第 14 行,在 UniqueConstraint('a_unique_constraint', Aa, Ab) 文件“/anaconda3/envs/recommendations /lib/python3.7/site-packages/sqlalchemy/sql/schema.py”,第 2870 行,在init self、*columns、_autoattach=_autoattach、_column_flag=_column_flag 文件“/anaconda3/envs/recommendations/lib/python3. 7/site-packages/sqlalchemy/sql/schema.py”,第 2762 行,在初始化中 self._check_attach() 文件“/anaconda3/envs/recommendations/lib/python3.7/site-packages/sqlalchemy/sql/schema.py”,第 2818 行,在 _check_attach self._set_parent_with_dispatch(tables.pop()) 文件中“ /anaconda3/envs/recommendations/lib/python3.7/site-packages/sqlalchemy/sql/base.py”,第 456 行,在 _set_parent_with_dispatch self._set_parent(parent) 文件“/anaconda3/envs/recommendations/lib/python3. 7/site-packages/sqlalchemy/sql/schema.py”,第 2881 行,在 _set_parent ColumnCollectionMixin._set_parent(self, table) 文件“/anaconda3/envs/recommendations/lib/python3.7/site-packages/sqlalchemy/sql /schema.py”,第 2838 行,在 self._col_expressions(table) 中的 _set_parent 中:文件“/anaconda3/envs/recommendations/lib/python3.7/site-packages/sqlalchemy/sql/schema.py”,第 2834 行,在 self._pending_colargs 中的 col 的 _col_expressions 文件“/anaconda3/envs/recommendations/lib/python3.7/site-packages/sqlalchemy/sql/schema.py”,第 2834 行,在 self._pending_colargs 中的 col文件“/anaconda3/envs/recommendations/lib/python3.7/site-packages/sqlalchemy/util/_collections.py”,第 194 行,在getitem return self._data[key] KeyError: 'a_unique_constraint'

标签: pythonsqlalchemy

解决方案


推荐阅读