gpt4 book ai didi

python - 如何使用 Travis CI 测试 Pl/Python PostgreSQL 程序?

转载 作者:太空狗 更新时间:2023-10-29 17:31:31 26 4
gpt4 key购买 nike

我正在尝试在 Travis CI 中为一些 PL/Python PostgreSQL 过程设置 CI。

我试过几种方法:
1) 对于遗留基础设施,我试图假设 PL/Python 已经安装,但没有成功:

The command "psql -U postgres -c 'CREATE EXTENSION plpythonu;'" exited with 1.
0.01s$ psql -U postgres -d test -c 'CREATE LANGUAGE plpythonu;'
ERROR: could not access file "$libdir/plpython2": No such file or directory

2) 尝试在开头添加 sudo apt-get update && sudo apt-get -y install postgresql-plpython-9.4 命令。它也失败了,因为这个命令启动了 PostgresSQL 9.4 的替换,它已经安装在 Travis 环境中。

Travis build.

3) 还尝试在配置中使用基于容器的基础设施:

addons:
postgresql: "9.4"
apt:
packages:
- postgresql-plpython-9.4

也没有成功。

在 Travis CI 中测试 PL/Python 程序的好方法是什么?

最佳答案

我能够得到 python-tempo build working与以下 .travis.yml :

sudo: required
language: python
before_install:
- sudo apt-get -qq update
- sudo /etc/init.d/postgresql stop
- sudo apt-get install -y postgresql-9.4
- sudo apt-get install -y postgresql-contrib-9.4 postgresql-plpython-9.4
- sudo -u postgres createdb test
- sudo -u postgres createlang plpython2u test
- sudo pip install jinja2
script:
- >
sudo -u postgres psql -d test -c 'CREATE OR REPLACE FUNCTION py_test()
RETURNS void LANGUAGE plpython2u AS $$
import jinja2
$$;'
- sudo -u postgres psql -d test -c 'SELECT py_test();'

您的旧版配置尝试遇到了各种问题,包括在安装 9.4 之前没有停止现有的 PostgreSQL 9.1 实例,以及没有正确指定 plpython 语言。我相信一些命令也没有以正确的用户身份运行。所有的问题都通过上面的配置解决了。可能有一些方法可以改进此配置,但一旦它开始工作我就停止了。

基于容器的配置将不起作用,因为 postgresql-plpython-9.4 当前不在 whitelist of pre-approved packages 中.然而,postgresql-plpython-9.5 是,所以如果你想迁移到基于容器的配置,你可以尝试 following the package approval process对于 postgresql-plpython-9.4 或等待 GA release of PostgreSQL 9.5然后尝试迁移。

关于python - 如何使用 Travis CI 测试 Pl/Python PostgreSQL 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31717410/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com