如何在elasticbeanstalk实例中升级PostgreSQL版本

0

【以下的问题经过翻译处理】 你好!我正在尝试将Rails 7应用程序部署到弹性Beanstalk,但我的部署一直失败。在日志中,我看到:An error occurred while installing pg (1.3.5), and Bundler cannot continue(安装postgres gem失败)。 我通过SSH登录到我的实例,并手动运行bundle,看到Your PostgreSQL is too old. Either install an older version of this gem or upgrade your database to at least PostgreSQL-9.3.

在我的.elasticbeanstalk.packages.config文件中,我有:

packages:
  yum:
    postgresql14-devel: []

但是这似乎对我的实例上的Postgres版本没有影响。

创建与我的beanstalk环境关联的任何版本的PostgreSQL的RDS实例似乎无法解决问题。

postgres -V不是我的beanstalk实例上的命令

如果我ssh到我的实例并cat usr/bin/pg_config,我认为它可能设置为版本9.2,但是这个文件不像是我应该通过SSH编辑的东西,我也没有看到任何有关操作如何生成该文件的引用。

任何帮助都将不胜感激!

更新1:

.elasticbeanstalk.packages.config应该位于.ebextensions中。我进行了此更改,仍然存在此错误。

在stackoverflow的另一个线程上发现了一个描述packages.config文件的线程,看起来像这样:

packages:
    yum:
        amazon-linux-extras: []

commands:
    01_postgres_activate:
        command: sudo amazon-linux-extras enable postgresql10
    02_postgres_install:
        command: sudo yum install -y postgresql-devel

我更新了文件,仍然没有成功。我终止并重建应用程序以再次尝试,并通过ssh手动运行sudo amazon-linux-extras enable postgresql10sudo yum install -y postgresql-devel,这最终让我成功地捆绑了安装。仍在努力通过 EB 部署来完成这项工作,而不是手动完成。

profile picture
专家
已提问 8 个月前33 查看次数
1 回答
0

【以下的回答经过翻译处理】 我已经解决了这个问题,我采取的步骤如下:

  1. .elasticbeanstalk.packages.config 文件应该在 .ebextensions 中,而不是elasticbeanstalk 中。
  2. 更新 packages.config 文件如下:
packages:
    yum:
        amazon-linux-extras: []

commands:
    01_postgres_activate:
        command: sudo amazon-linux-extras enable postgresql10
    02_postgres_install:
        command: sudo yum install -y postgresql-devel

  1. 创建新的应用程序和新的环境来完全验证上述步骤是否在新实例上运行。
profile picture
专家
已回答 8 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则