python - 如何在 SQLAlchemy + Postgres 中将具有空数组的数组列设置为默认值

标签 python postgresql sqlalchemy

我想列出一条信息的来源。我认为我不会使用 一对多 关系创建另一个表,而是使用 Array 类型。

我试过:

app = Flask(__name__)
db = SQLAlchemy(app)

...

class Edge(db.Model):

    sources = db.Column(
        db.ARRAY(db.String),
        default=db.ARRAY(db.String)
    )

但是添加 edge 会给我这个错误:

ProgrammingError: (psycopg2.ProgrammingError) can't adapt type 'ARRAY' [SQL: 'INSERT INTO edges (child_id, parent_id, sources) VALUES (%(child_id)s, %(parent_id)s, %(sources)s'] [parameters: {'child_id': 20, 'parent_id': 26, 'sources': ARRAY(String())}]

我找不到关于如何使用带有默认空数组的 array 列的好教程。

谢谢

最佳答案

我最终在评论中找到了答案here :

sources = db.Column(
    db.ARRAY(db.String),
    server_default="{}"
)

关于python - 如何在 SQLAlchemy + Postgres 中将具有空数组的数组列设置为默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52925453/

相关文章:

python - 支持 Anvil map 的 Minecraft pymclevel 替代品?

python - Python 将 UTF 字符从 XML 插入 MySQL 时出现问题

Python 3 - 从低于 1920x1080 的文件夹中删除图片

php - Laravel 在查询 JSONB 列(转换为数组)时是否调用 json_decode 一次或多次?

python - 如何防止特定类在 SQLAlchemy 中被更新/删除?

python - Django 模型在模板中不可迭代

java - 防止每次读取时发生 DataNucleus 事务

postgresql - 将 JDBC URL 传递给 openjpa-maven-plugin 以刷新 PostgreSQL 中的数据

postgresql - 如何使用 sqlalchemy 在 Docker 中访问 postgresql?

python - 如何使用 SQLAlchemy 过滤带有 LIKE 的连接列?