django AWS Codebuild正在安装软件包的升级版本,但仍检测到/使用旧版本

guykilcj  于 2023-01-10  发布在  Go
关注(0)|答案(1)|浏览(107)

我有一个Django应用通过AWS的弹性beanstalk部署,它使用CodePipeline服务来构建。作为该管道的一部分,CodeBuild服务用于构建部署到ElasticBeanstalk环境中的应用。
生成失败,发送以下错误消息:

django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17).

根据Amazon的own package version listing,我意识到这是预期的,因为旧版本是打算在Amazon Linux 2发行版上。
我写了一个shell脚本来下载最新版本的SQLite并从头开始构建,但是我仍然遇到同样的问题。
buildspec.yaml文件中,我有以下内容:

...    
  post_build:
    commands:
      - echo "beginning post-build phase..."
      - bash get_sqlite.sh
      - echo "sqlite version -- $(sqlite3 --version)"
      - python manage.py makemigrations
      ...

在CodeBuild日志中,我可以看到echo命令的结果如下:

sqlite version -- 3.40.1 2022-12-28

然而,构建失败,日志仍然显示以下错误:

django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required (found 3.7.17).

你知道要检测到更新的版本而不是以前的版本还需要采取什么步骤吗?

1mrurvl1

1mrurvl11#

我认为你需要把你的sqlite命令移到linux的bin目录下。

- mv sqlite /usr/local/bin/

即使软件包已更新,但Linux读取PATH(用于查找命令的env变量),并且仍在查找命令的旧版本,也就是说,您需要在bin目录中用新版本替换旧sqlite命令

相关问题