簡體   English   中英

如何使用Travis CI測試Pl / Python PostgreSQL程序?

[英]How to test Pl/Python PostgreSQL procedures with 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  

2)嘗試在開頭添加sudo apt-get update && sudo apt-get -y install postgresql-plpython-9.4命令。 它也失敗了,因為這個命令開始替換已經安裝在Travis環境中的PostgresSQL 9.4。

Travis構建。

3)還試圖在配置中使用基於容器的基礎設施:

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

也沒有成功。

在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();'

您的舊配置嘗試存在各種問題,包括在安裝9.4之前不停止現有的PostgreSQL 9.1實例,並且未正確指定plpython語言。 我相信一些命令也沒有作為正確的用戶運行。 所有問題都通過上述配置解決。 可能有一些方法可以改進這種配置,但是一旦我開始工作,我就停止了。

基於容器的配置將不起作用,因為postgresql-plpython-9.4當前不在預先批准的軟件包白名單中 但是, postgresql-plpython-9.5是,所以如果你想遷移到基於容器的配置,你可以嘗試遵循 postgresql-plpython-9.4 的包批准過程或者等待PostgreSQL 9.5GA版本並嘗試遷移然后。

現在已經確認已將我之前的評論轉換為答案...

正如Travis文檔中所述,正確的安裝方法是在before_install階段更新依賴關系(很像列表中的選項2)。

唯一的問題似乎是您在升級之前沒有停止Postgres。

我不完全知道細節,但是,如果你把文件放在正確的位置,你可以從程序本身調用它

import fileName.className

要么

import methodName from fileName.className

編輯:我查了一下,只是把它放在你正在運行的程序所在的目錄(cmd,idle,ect。)中並調用它,或者將它放在一個文件夾中並將文件夾名稱添加到代碼中

例如。

import folder/fileName.ClassName

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM