区域设置在Jelastic 5.4的PostgreSQL 9.6中不可用

时间:2018-12-04 14:35:07

标签: postgresql locale jelastic

我有一个基于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>

当然,<database-name>是我要创建的数据库的名称。我收到以下错误消息:

  

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

我尚未使用PostgreSQL v10.x测试我的应用程序,并且现在没有机会进行测试。请让我知道您现在建议我做什么。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

PostgreSQL的基本映像和其他模板的区域设置被有意删除,以减小docker映像的总大小。同时,用户可以在使用SSH access的帮助下手动安装区域设置:

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

注意:在container redeploy之后,语言环境将恢复为其初始状态。为了克服此限制,您可以在run command

中指定提供的命令