我有一个基于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测试我的应用程序,并且现在没有机会进行测试。请让我知道您现在建议我做什么。
答案 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
中指定提供的命令