python - 如何在 SQLAlchemy + Postgres 中将具有空数组的数组列设置为默认值
问题描述
我想列出sources
一条信息。one to many
我没有使用关系创建另一个表,而是使用该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) 无法适应类型'ARRAY' [SQL: 'INSERT INTO edges (child_id, parent_id, sources) VALUES (%(child_id)s, %(parent_id)s, %(sources)s'] [参数:{'child_id':20,'parent_id':26,'sources':ARRAY(String())}]
我找不到关于如何使用array
具有默认空数组的列的好教程。
谢谢
解决方案
我最终在这里的评论中找到了答案:
sources = db.Column(
db.ARRAY(db.String),
server_default="{}"
)
推荐阅读
- java - 防止请求映射在 Spring Boot 中注册
- google-bigquery - Regexp_extract BigQuery
- arrays - Ansible:如何将元素分配给键名中有点的数组/变量?
- javascript - 在 JavaScript 中使用 for 循环更改 H1
- react-native - 在 React Native 中使用 Flatlist 数据导航
- android - targetSdkVersion 29 时出现错误 MediaProjection
- php - url 参数 - laravel
- weblogic12c - 提取为 .BAR 文件时,用户未显示
- php - 无法生成我的固定装置 alice hautelook symfony 属性“productType”和方法之一“getProductType()”都不是
- python - 为不同的 CSV 文件获得相同的结果