postgresql pg_import_system_collat​​ions 不导入操作系统添加的语言环境

标签 postgresql

第一篇文章。在 debian buster light 上使用 postgresql 11.9 时,我想向 postgreqls 列表添加一个新的语言环境。做select * from pg_collation;psql显示我想要的区域设置不在列表中。

为了添加新的语言环境,我首先通过取消注释行 sv_SE.UTF-8 UTF-8 向我的 debian 添加了新的语言环境。在/etc/locale.gen 。然后我运行/usr/sbin/locale-gen这是成功的。之后locale -alocalectl list-locales显示我新添加的区域设置。

现在我想更新来自 c-lib 的 postgresql 中的语言环境列表。这是使用 pg_import_system_collations 完成的记录在这里https://www.postgresql.org/docs/11/functions-admin.html

正在运行psql作为用户 postgres 并执行 select pg_import_system_collations('pg_catalog');产量

 pg_import_system_collations
-----------------------------
                           0
(1 row)

因此不会导入新的语言环境。我不知道为什么。有什么想法吗?

编辑:将“更新”与答案转换为单独的答案

最佳答案

以上所有操作都是在不重新启动任何守护程序、服务、主机等的情况下完成的。

我现在已经让 systemctl 重新启动 postgresql。现在 pg_import_system_collat​​ions 按预期工作。我的结论是 pg_import_system_collat​​ions 的文档有点不对劲。显然,它会在启动时缓存系统区域设置,如果需要,可以使用 pg_import_system_collat​​ions 导入它们。

看看其他 postgresql 用户是否看到相同的行为以及它是否随操作系统而变化,这将是很有趣的。

关于postgresql pg_import_system_collat​​ions 不导入操作系统添加的语言环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64994964/

相关文章:

node.js - Sequelizejs 模型创建回调未同步运行?

postgresql - 使用 Ecto.Repo.update_all/3 插入 NULL 值

sql - 如何使用一个 SQL 查询从多个日期范围中提取数据?

postgresql - postgres - 更新 jsonb 数组的语法

.net - 为什么 TableAdapter 会为整个时间戳列使用 "1/1/2000"填充数据集?

php - PostgreSQL 连接问题

postgresql - 在 PL/pgSQL 中更新整行

database - Postgresql 9.5 中的方法复制

sql - 从带有时区列的时间戳中选择匹配日期

sql - 几乎相同值的日期比较