2017-08-30 40 views
0

我試圖運行一個函數,但它不起作用。來自psql的錯誤信息難以理解

/usr/bin/python2.7 /home/developer/PycharmProjects/credorax-git/project/services/pgw_credorax/credorax_tests.py 
E 
====================================================================== 
ERROR: test_successful_refund (__main__.CredoraxTests) 
---------------------------------------------------------------------- 
Traceback (most recent call last): 
    File "/home/developer/PycharmProjects/credorax-git/project/services/pgw_credorax/credorax_tests.py", line 51, in test_successful_refund 
    [ 100, response['response_id'], response['auth_code'],response['payment_ref'], ]) 
ProgrammingError: column "trans_id" of relation "credorax_msgs" does not exist 
LINE 1: INSERT INTO credorax_msgs (trans_id, response_id, auth_code,... 
           ^
QUERY: INSERT INTO credorax_msgs (trans_id, response_id, auth_code, payment_ref) VALUES (_trans_id,_response_id,_auth_code,_payment_ref) 
CONTEXT: PL/pgSQL function insert_credorax_msg(integer,character varying,character varying,character varying) line 3 at SQL statement 


---------------------------------------------------------------------- 
Ran 1 test in 5.465s 

FAILED (errors=1) 

Process finished with exit code 1 

但錯誤是錯誤的,我其實有一個名爲trans_id的列。

這是怎麼回事?我的功能如下所示。

-- Function: public.insert_credorax_msg(integer, character varying, character varying, character varying) 

-- DROP FUNCTION public.insert_credorax_msg(integer, character varying, character varying, character varying); 

CREATE OR REPLACE FUNCTION public.insert_credorax_msg(
    _trans_id integer, 
    _response_id character varying, 
    _auth_code character varying, 
    _payment_ref character varying) 
    RETURNS boolean AS 
$BODY$ 
BEGIN 
INSERT INTO credorax_msgs (trans_id, response_id, auth_code, payment_ref) VALUES (_trans_id,_response_id,_auth_code,_payment_ref); 
RETURN true; 
END; 
$BODY$ 
    LANGUAGE plpgsql VOLATILE SECURITY DEFINER 
    COST 100; 
ALTER FUNCTION public.insert_credorax_msg(integer, character varying, character varying, character varying) 
    OWNER TO pgw; 

回答

1

確保在測試時連接到正確的數據庫。

通常,測試運行程序對數據庫連接使用與用於開發或生產的配置不同的配置。