Gil*_*tes 13 python postgresql continuous-integration plpython travis-ci
我正在尝试为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
Run Code Online (Sandbox Code Playgroud)
2)尝试sudo apt-get update && sudo apt-get -y install postgresql-plpython-9.4在开头添加命令.它也失败了,因为这个命令开始替换已经安装在Travis环境中的PostgresSQL 9.4.
3)还试图在配置中使用基于容器的基础设施:
addons:
postgresql: "9.4"
apt:
packages:
- postgresql-plpython-9.4
Run Code Online (Sandbox Code Playgroud)
也没有成功.
在Travis CI中测试PL/Python过程的好方法是什么?
我能够使用以下.travis.yml获得python-tempo构建:
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();'
Run Code Online (Sandbox Code Playgroud)
您的旧配置尝试存在各种问题,包括在安装9.4之前不停止现有的PostgreSQL 9.1实例并且未正确指定plpython语言.我相信一些命令也没有作为正确的用户运行.所有问题都通过上述配置解决.可能有一些方法可以改进这种配置,但是一旦我开始工作,我就停止了.
基于容器的配置不起作用,因为postgresql-plpython-9.4当前不在预先批准的软件包的白名单中.然而,postgresql-plpython-9.5就是这样,如果你想迁移到基于容器的配置,你可以尝试以下的包审批过程的postgresql-plpython-9.4或等待的PostgreSQL 9.5的GA版本,并尝试再迁移.
| 归档时间: |
|
| 查看次数: |
780 次 |
| 最近记录: |