django - 在 travis 构建中选择正确的 postgresql 版本

标签 django postgresql travis-ci

我使用 TravisCi 构建和测试基于 Django 的项目。

构建因与数据库相关的错误而失败,这些错误似乎与使用的错误的 postgres 版本有关。然而,按照 Travis 文档设置 Postgres 的版本似乎没有按预期工作。

这是我的 .travis.yml 文件:

language: python
python:
  - "3.6"
addons:
  - postgresql: "9.6"
before_install:
 - cd $TRAVIS_BUILD_DIR/src
install:
 - npm install -g sass
 - make init
before_script:
  - psql --version
  - psql -c 'SELECT version();' -U postgres
  - psql -c "CREATE USER aides WITH CREATEDB PASSWORD 'aides';" -U postgres
script:
 - make checkstyle
 - make test

这是困扰我的构建部分:

$ psql --version
psql (PostgreSQL) 9.6.6

$ psql -c 'SELECT version();' -U postgres
                                                   version                                                    
--------------------------------------------------------------------------------------------------------------
 PostgreSQL 9.2.24 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4, 64-bit
(1 row)

除非我遗漏了一些明显的东西,否则看起来psql客户端从不同的pg版本连接到服务器。如何配置 Travis 以确保使用 Postgres 服务器 9.6?

最佳答案

addons 应该是映射/字典/哈希而不是数组/序列。尝试:

addons:
  postgresql: "9.6"

参见https://docs.travis-ci.com/user/database-setup/#using-a-different-postgresql-version

关于django - 在 travis 构建中选择正确的 postgresql 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52420685/

相关文章:

django - 导入错误: No module named app_name

django - Django Models和带有两个或多个表的SELECT吗?

arrays - 如何将 PostgreSQL 时间戳数据类型插入时间戳数组

python - 由于 PySide2 和 Matplotlib,Travis-CI 无法构建

android - TravisCI,使用Gradle构建并使用Crashlytics进行部署

python - virtualenv 与gunicorn 无法正常工作

python - Django/Python 将 URL 中的文件作为 http 代理快速流提供服务

sql-server-2008 - SQL Server 2008 R2 -> Postgres 链接服务器 "cannot get the current row value of column..."

sql - 根据列值创建列

javascript - Travis CI Nodejs 4 和 eval npm 安装