【问题标题】:Locale not available in PostgreSQL 9.6 on Jelastic 5.4Jelastic 5.4 上的 PostgreSQL 9.6 中不提供区域设置
【发布时间】:2018-12-04 14:35:07
【问题描述】:

我有一个基于 bash 脚本的自动部署过程,它在 Jelastic 环境的 PostgreSQL 节点上创建一个数据库。我的提供商正在使用 Jelastic 平台 5.4 版。

自动化程序已成功使用数十次,但今天拒绝运行。

我的旧 Jelastic 环境都有 PostgreSQL 版本 9.4.x 或 9.5.x。但是,我刚刚创建的新环境为我提供了 9.6.x 版本,这似乎是(根据环境拓扑屏幕)9.x 分支上唯一可用的 PostgreSQL 版本。

以下语句不再适用于 PostgreSQL 版本 9.6.x:

createdb -T template0 -E UTF8 -l es_EC.UTF-8 -U webadmin -w -e <database-name>

当然,&lt;database-name&gt; 是我打算创建的数据库的名称。我收到以下错误消息:

createdb:数据库创建失败:错误:无效的语言环境名称: "es_EC.UTF-8"

我没有使用 PostgreSQL v10.x 测试我的应用程序,现在也没有机会这样做。请让我知道你建议我在这一点上做什么。

【问题讨论】:

    标签: postgresql locale jelastic


    【解决方案1】:

    9.6 数据库可能安装在未安装该语言环境的机器上。

    PostgreSQL 使用操作系统语言环境,因此您可以在 shell 上运行 locale -a 以查看所有已安装的语言环境。

    您可能需要做的就是在机器上安装所需的语言环境。

    【讨论】:

      【解决方案2】:

      为了减少 docker 镜像的总大小,有意删除了 PostgreSQL 基础镜像和其他模板的语言环境。同时,用户可以使用SSH access手动安装语言环境:

      sudo localedef -v -c -i es_EC -f UTF-8 es_EC.UTF-8
      

      注意:在container redeploy 之后语言环境将返回到其初始状态。为了克服这个限制,您可以在run command中指定提供的命令

      【讨论】:

      • 请澄清您提到的“容器重新部署”是否也会在环境重新启动时发生,无论是通过每个环境可用的停止/启动按钮还是在执行新的手动部署时WAR,它强制重启 Tomcat 节点(在后一种情况下,我相信 PostgreSQL 节点不受影响。)在这一点上,我自己不会直接或明确地在我的环境中使用任何与容器相关的操作,除了什么Jelastic 可能会作为我上面提到的操作的一部分在内部执行(环境重启和 WAR 重新部署)。
      猜你喜欢
      • 1970-01-01
      • 2018-10-30
      • 2013-05-05
      • 1970-01-01
      • 2017-08-22
      • 2020-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多