小编Jan*_*nie的帖子

是否可以使用 SQLAlchemy 在数据库中拥有列表或数组?

我正在尝试构建一个允许用户制作“项目”的系统。这些项目的语法相当简单,只需要一个 ID、一个名称、可选的描述和参与者。

因为我希望用户能够在项目中添加或删除其他用户,而不必再次输入整个用户列表,所以我想使用字符串或数组或某种此类方法而不是字符串。

但是,我一直在尝试输入它。我最初尝试了常规列表,但 SQLalchemy 不接受。经过谷歌搜索后,似乎不可能?除非我根本就没有遇到过。

我现在尝试使用数组代替。我当前的代码如下所示:

class DBProject(db.Model):
__tablename__ = 'project'
    project_id = db.Column(db.Integer, primary_key=True)
    project_name = db.Column(db.String(128))
    project_description = db.Column(db.String(255), nullable=True)
    project_participants = db.Column(db.ARRAY(db.Integer))
Run Code Online (Sandbox Code Playgroud)

但这给出了错误: in _compiler_dispatch raise exc.UnsupportedCompilationError(visitor, cls) sqlalchemy.exc.CompileError: (in table 'project', column 'project_participants'): Compiler can't render element of type

之前,我尝试将 (db.Integer) 去掉或仅用 Integer 替换它(因为我在其他有类似问题的人身上看到过这种情况),如下所示:

project_participants = db.Column(db.ARRAY(Integer))
Run Code Online (Sandbox Code Playgroud)

这会给出“Integer”未定义的错误,或者,如果完全忽略它,则会出现此错误:

类型错误:init () 缺少 1 个必需的位置参数:'item_type'

我希望将数组添加到数据库中,以便我可以使用它来追加新用户或删除用户,而不必在他只想添加或删除用户时再次使系统的用户输入全部允许用户。

python database sqlalchemy

3
推荐指数
1
解决办法
5902
查看次数

标签 统计

database ×1

python ×1

sqlalchemy ×1