来自psql的错误消息难以理解

时间:2017-08-30 12:28:48

标签: python postgresql

我试图运行一个功能,但它不起作用。

/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 个答案:

答案 0 :(得分:1)

确保在测试时连接到正确的数据库。

通常,测试运行程序使用与用于开发或生产的数据库连接不同的配置。