2014-07-17 10 views
5

Ho bisogno di ottenere alcuni dati dal database remoto. Qui il codice per la connessione:query psycopg2 al database remoto

import psycopg2 

params = { 
    'dbname': 'some_db', 
    'username': 'user', 
    'password': 'password', 
    'host': '333.333.333.333', 
    'port': 3333 
} 

conn = psycopg2.connect(**params) 

poi cerco di eseguire la query:

cur = conn.cursor() 
cur.execute("SELECT * FROM sometable") 

E dopo che ho eccezione:

psycopg2.ProgrammingError: relation sometable does not exist 

Ora, se mi collego al database con esatte stessi parametri dalla stessa macchina tramite psql:

psql --dbname=some_db --username=user --password=password --host=333.333.333.333 --port=3333 

e cercare di eseguire la query:

SELECT * FROM sometable; 

ottengo risultati senza errori. E succede non solo con una tabella, ma con tutti in quel database.

EDIT

devo piccolo errore in params. Io non uso

'username': 'user', 

ma:

'user': 'user', 

risposta

7

provare a collegare con diversi nomi di variabili, come:

params = { 
    'database': 'some_db', 
    'user': 'user', 
    'password': 'password', 
    'host': '333.333.333.333', 
    'port': 3333 
} 

See:

http://initd.org/psycopg/docs/module.html

+0

ho provato. Stil lo stesso errore. – Moisizz

+0

hai provato a utilizzare una stringa dsn invece? come asserisci, se riesci a connetterti direttamente al database con psql e hai successo, allora una connessione con psycopg2 con le stesse credenziali dovrebbe funzionare allo stesso modo. – Greg

+0

Ho provato a connettermi con la stringa dsn. Stesso risultato :( – Moisizz