首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >sqlalchemy.exc.ProgrammingError:(psycopg2.errors.UndefinedObject)编码"utf8“的排序规则"UTF8”不存在

sqlalchemy.exc.ProgrammingError:(psycopg2.errors.UndefinedObject)编码"utf8“的排序规则"UTF8”不存在
EN

Stack Overflow用户
提问于 2022-04-06 16:55:51
回答 1查看 290关注 0票数 0

我目前在运行SQLAlchemy和postgresql时遇到了以下错误

代码语言:javascript
运行
复制
sqlalchemy.exc.ProgrammingError: (psycopg2.errors.UndefinedObject) collation "utf8" for encoding "UTF8" does not exist

我在docker-compose.yml文件中初始化一个Postgres数据库如下:

代码语言:javascript
运行
复制
  db:
    image: postgres:14-alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    ports:
      - 5432:5432
    env_file:
      - .env
    environment:
      - POSTGRES_INITDB_ARGS='--lc-collate="en_US.UTF-8" --lc-ctype="en_US.UTF-8"'

但是,我认为在试图迁移模型中的字段时存在不匹配现象,例如:

代码语言:javascript
运行
复制
# Common Name
name = Column(
    String(
        length=180,
        collation="utf8",
        convert_unicode=False,
        unicode_error=None,
    ),
    index=True,
    name="name",
    comment="Common or IAU Name",
)

有人能向我解释一下这里出了什么问题,以及一些潜在的解决办法吗?

EN

回答 1

Stack Overflow用户

发布于 2022-04-06 17:19:18

假设你需要校对,你可能想看看这篇文章,它比我解释校对做得更好。

https://dba.stackexchange.com/questions/240930/postgresql-difference-between-collations-c-and-c-utf-8

不过,我想你要找的答案是:

代码语言:javascript
运行
复制
name = Column(
    String(
        length=180,
        collation="C.UTF-8",
        convert_unicode=False,
        unicode_error=None,
    ),
    index=True,
    name="name",
    comment="Common or IAU Name",
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71770806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档