1 votes

Erreur de clé sur le nom de la base de données

J'essaie d'exécuter la bibliothèque de déduplication et cet exemple avec la commande Bash d'Ubuntu.

https://github.com/dedupeio/dedupe-examples/tree/master/pgsql_big_dedupe_example

En gros, j'ai créé une base de données appelée campfin, comme vous pouvez le voir lorsque je liste les noms des bases de données, elle existe.

postgres=# \l
                               List of databases
   Name    |    Owner    | Encoding | Collate |  Ctype  |   Access privileges
-----------+-------------+----------+---------+---------+-----------------------
 campfin   | simon       | UTF8     | C.UTF-8 | C.UTF-8 |
 dbname    | owning_user | UTF8     | C.UTF-8 | C.UTF-8 |
 postgres  | postgres    | UTF8     | C.UTF-8 | C.UTF-8 |
 template0 | postgres    | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
           |             |          |         |         | postgres=CTc/postgres
 template1 | postgres    | UTF8     | C.UTF-8 | C.UTF-8 | =c/postgres          +
           |             |          |         |         | postgres=CTc/postgres
(5 rows)

postgres=# \c campfin
You are now connected to database "campfin" as user "postgres".
campfin=# sudo netstat -plunt |grep postmaster
campfin-#  \conninfo
You are connected to database "campfin" as user "postgres" via socket in "/var/run/postgresql" at port "5433".
campfin-#

Lorsque j'exécute mon code Python :

python3 pgsql_big_dedupe_example_init_db.py

o

sudo python3 pgsql_big_dedupe_example_init_db.py

C'est la partie du mode de connexion à la base de données.

conn = psycopg2.connect(database=db_conf['campfin'],
                        user=db_conf['111'],
                        password=db_conf['111'],
                        host=db_conf['localhost'],
                        port=db_conf['5433'])

Il me retourne que la base de données campfin n'existe pas :

Traceback (most recent call last):
  File "pgsql_big_dedupe_example_init_db.py", line 75, in <module>
    conn = psycopg2.connect(database=db_conf['campfin'],
KeyError: 'campfin'

qu'est-ce que je fais de mal ici ? Le problème est-il lié à " via socket dans "/var/run/postgresql" ? Qui n'est pas mon hôte local ?

Quand je cours :

/mnt/c/WINDOWS/system32/virtualenv/dedupe/dedupe-examples/pgsql_big_dedupe_example$ service postgresql status

en retour : 10/main (port 5433) : en ligne

0voto

pLumo Points 23269

db_conf['NAME'] n'est pas destiné à se transformer en db_conf['campfin'] . Le site clé es NAME le valeur d'elle sera campfin !

Dans la ligne de commande, exécutez

export DATABASE_URL=postgres://111:111@localhost/campfin

Ensuite, exécutez python3 pgsql_big_dedupe_example_init_db.py avec le code original ...

con = psycopg2.connect(database=db_conf['NAME'],
                   user=db_conf['USER'],
                   password=db_conf['PASSWORD'],
                   host=db_conf['HOST'],
                   cursor_factory=psycopg2.extras.RealDictCursor)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X