当前位置: 首页 > 知识库问答 >
问题:

Geodjango的Beanstalk迁移失败

谭越
2023-03-14

我想在aws beanstalk中部署geodjango。

我已经尝试过这个解决方案。它以前工作过。

commands:
  01_yum_update:
    command: sudo yum -y update
  02_epel_repo:
    command: sudo yum-config-manager -y --enable epel
  03_install_gdal_packages:
    command: yum --enablerepo=epel -y install gdal gdal-devel

packages:
  yum:
    git: []
    postgresql96-devel: []
    gettext: []
    libjpeg-turbo-devel: []
    libffi-devel: []

但现在它显示了这个错误。

AttributeError: /usr/lib64/libgdal.so.1: undefined symbol: GDALGetMetadataDomainList
   (ElasticBeanstalk::ExternalInvocationError)

以下是完整的错误日志

共有3个答案

邢寒
2023-03-14

@Jorge阿尔法罗在Django 2.2中是正确的,放弃了对GDAL 1.9和1.10的支持。我尝试了他的解决方案,即在 ebextensions .config 文件中从源代码安装内容,但至少在小型 EC2 实例上,即使使用 max-3600 秒设置,它也会超时。建议在 https://github.com/vancityhuddy/aws-eb-gdal-example 使用更强大、更快速启动的解决方案,您可以在其中执行以下操作:

  • 创建一个 EC2 实例,您可以将该实例 SSH 导入该实例,并且该实例有权推送到 S3 存储桶。
  • 在实例上使用构建脚本在本地构建地理、Proj4 和 GDAL。
    • 不要依赖该存储库对这些版本的特定编号 - 有关与您的Django版本兼容的版本,请参阅Django的网站。
    • 为了获得最大的可靠性,还建议修改脚本以引用Django的网站建议的数据网格文件。
    • 另请注意,该构建脚本的作者错误地将 Proj4 构建版本放置了两次。引用所需的编辑。
      < li >该存储库中的PYTHONPATH对我不起作用-您可能需要更新它,例如/opt/python/current/app < li >例如,如果您通过yum在您的服务器上安装了GeoDjango的以前版本,您可能希望通过EB控制台更新您的Beanstalk部署设置以使用< code >不可变策略,以便全新安装。否则,使用滚动部署,您将在同一台服务器上安装不同版本的GeoDjango,这在我的经验中会导致错误(例如,OP的原始< code > GDALGetMetadataDomainList )。

卫深
2023-03-14

我也遇到了这个问题,原来django 2.2放弃了对GDAL 1.9和1.10的支持,EPEL仓库的版本是1.7。我最后用下面的脚本从源代码安装了所有东西:

commands:
  01_execute_script:
    test: test ! -e /usr/bin/gdalinfo
    command:        "/tmp/gdal_install.sh"

files:
  "/tmp/gdal_install.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/usr/bin/env bash
      # Geos
      cd ~
      wget -O ~/geos-3.7.2.tar.bz2 http://download.osgeo.org/geos/geos-3.7.2.tar.bz2
      tar xjf ~/geos-3.7.2.tar.bz2
      cd ~/geos-3.7.2
      ./configure --prefix=/usr --enable-python
      make
      sudo make install

      # Proj4
      cd ~
      wget -O ~/proj-6.1.0.tar.gz http://download.osgeo.org/proj/proj-6.1.0.tar.gz
      wget -O ~/proj-datumgrid-1.7.tar.gz http://download.osgeo.org/proj/proj-datumgrid-1.7.tar.gz
      tar xzf ~/proj-6.1.0.tar.gz
      cd ~/proj-6.1.0/data
      tar xzf ~/proj-datumgrid-1.7.tar.gz
      cd ..
      ./configure --prefix=/usr
      make
      sudo make install

      # GDAL
      cd ~
      wget -O ~/gdal-2.3.2.tar.gz http://download.osgeo.org/gdal/2.3.2/gdal-2.3.2.tar.gz
      tar xzf ~/gdal-2.3.2.tar.gz
      cd ~/gdal-2.3.2
      ./configure --prefix=/usr --with-python --with-pg --with-geos --with-curl
      make
      sudo make install

      sudo ldconfig

如果有人找到更好的解决方案,请告诉我们,根据实例大小,从源代码构建所有内容可能需要30分钟以上

余弘新
2023-03-14

看起来像是使用<code>Django==2.2.1要求。txt的工作原理如下:

Django==2.1.8
django-cors-headers==2.5.2
django-debug-toolbar==1.11
django-extensions==2.1.6
django-model-utils==3.1.2
djangorestframework==3.9.2
psycopg2-binary==2.8.2
pytz==2019.1
six==1.12.0
sqlparse==0.3.0
 类似资料:
  • 问题内容: 如何回滚失败的Rails迁移?我希望这会撤消失败的迁移,但是不,它会回滚以前的迁移(失败的迁移减去一个)。而且也不起作用。我已经遇到过几次了,这非常令人沮丧。这是我做的一个简单测试,可以重复该问题: 结果: 好的,让我们回滚一下: 嗯?那是我在SimpleTest之前的最后一次迁移,而不是失败的迁移。(哦,如果迁移输出中包含版本号,那就太好了。) 因此,让我们尝试为失败的迁移Simpl

  • 我刚刚在配置和充分理解flyway的过程中遇到了这样的情况: 我已成功配置新项目以使用Flyway。 我已成功将测试数据库从版本0迁移到1.0.3。 无法执行到版本1.0.4的迁移。(我试图添加已经存在的列,到目前为止没有问题,是我的错。) 但是,一旦我对相应的脚本进行了必要的更改以使其工作,flyway就会不断显示这样的消息: 由于我不想恢复一个完整的转储并再次应用每一次迁移,只是为了使alte

  • 我正在运行一个Spring boot 2.4.3应用程序,我有一个支持事务的mongob 4集群(我使用run-rs在本地运行它)。我也在使用Spring data mongob。我正在尝试为db迁移集成mongock(最新版本-4.3.8),但我面临一个问题,我无法解决。正如我们所知,最新版本的mongock默认使用事务。我有以下更改集,它只是为我的一个实体创建了一个mongob集合。 运行应用

  • Django v1.11.5 我试图安装GeoDjango来玩谷歌地图。 我为MAC安装了PostgreSQL应用程序,并安装了。我还使用自制软件安装GDAL。 要添加的已编辑设置.py: 但是,当我运行migrate时,我得到: 我创建用户使用: 完全错误: 运行迁移:Applying users.0011_location…Traceback(最后一次调用):在execute_from_com

  • 我已成功地将spring boot配置为使用Flyway的新项目 随Postgres数据库从版本0001.0迁移到0008.0 我已在本地手动更改脚本,但flyway迁移失败。 错误消息示例: 注意:-我不想从表flyway_schema_history中删除脚本条目。

  • 在类路径中:/db。迁移有迁移但flyway没有看到这一点,而是爱上了msg 2022-05-02 17:28:07.993INFO 45296 --- [ restartedMain]c. c. c. ConfigServiceProperty tySourceLocator:从服务器获取配置,地址为:http://localhost:8888/story2022-05-02 17:28:08.