"-6ren"> "-我试图在我的 sqlAlchemy 基类中添加一个简单的字符串/整数数组类型列,但没有运气。每次它都给我一个无法呈现数组类型的异常。我不明白为什么。我错过了什么? 这是我的课: class Item_-6ren">
gpt4 book ai didi

python - SQLAlchemy,添加一个 ARRAY 类型的列 throw me "can' t render element of type "

转载 作者:行者123 更新时间:2023-12-03 15:00:08 34 4
gpt4 key购买 nike

我试图在我的 sqlAlchemy 基类中添加一个简单的字符串/整数数组类型列,但没有运气。每次它都给我一个无法呈现数组类型的异常。我不明白为什么。我错过了什么?

这是我的课:

class Item_detail(Base):
__tablename__ = 'item_detail'
id = Column(Integer, primary_key=True)
detail_label = Column(String)
images_link = Column(ARRAY(String()), default=[])

engine = create_engine('sqlite:///bifi.db')

from sqlalchemy.orm import sessionmaker
session = sessionmaker()
session.configure(bind=engine)
Base.metadata.create_all(engine)

但是,sqlalchemy 告诉我:
File "/usr/local/lib/python2.7/site-packages/sqlalchemy/sql/visitors.py", line 79, in _compiler_dispatch
raise exc.UnsupportedCompilationError(visitor, cls)
sqlalchemy.exc.CompileError: (in table 'item_detail', column 'images_link'): Compiler <sqlalchemy.dialects.sqlite.base.SQLiteTypeCompiler object at 0x10f9aa210> can't render element of type <class 'sqlalchemy.dialects.postgresql.base.ARRAY'>

我不明白为什么我不能渲染它。我尝试了不同的数组类型,但没有运气。

最佳答案

SQLAlchemy 的 ARRAY 目前可以用于 PostageSQL 后端(SQLAlchemy 1.3.18)。写在“sqlalchemy/sql/sqltypes.py”上的 ARRAY 描述说:

This type serves as the basis for all ARRAY operations.However, currently only the PostgreSQL backend has supportfor SQL arrays in SQLAlchemy.


所以,如果你想使用 SQLAlchemy 的 ARRAY,你应该安装 PostageSQL 和 psycopg2。然后创建引擎如下。
DATABASE = 'postgresql'
USER = 'postgres'
PASSWORD = 'your password'
HOST = 'localhost'
PORT = '5432'
DB_NAME = 'postgres'
engine = create_engine(f'postgresql://{USER}:{PASSWORD}@{HOST}:{PORT}/{DB_NAME }')

关于python - SQLAlchemy,添加一个 ARRAY 类型的列 throw me "can' t render element of type <class 'sqlalchemy.dialects.postgresql.base.ARRAY' >",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36553241/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com