Ключевая ошибка на имени базы данных

Я пытаюсь выполнить библиотеку дедупликации и этот пример на команде Ubuntu Bash.

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

В основном я создал базу данных, названную campfin, поскольку Вы видите, когда я перечисляю имена базы данных, он действительно существует.

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-#

Когда я выполняю свой код Python:

python3 pgsql_big_dedupe_example_init_db.py

или

sudo python3 pgsql_big_dedupe_example_init_db.py

Это - часть режима для соединения с базой данных.

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

В возвращает меня, что база данных campfin не существует:

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

что я делаю неправильно здесь? Проблема связана с "через сокет в "/var/run/postgresql"? Который не является моим localhost?

Когда я работаю:

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

в возвратах: 10/основной (порт 5433): онлайн

1
задан 24 October 2019 в 07:53

1 ответ

db_conf['NAME'] не предназначен для изменения на db_conf['campfin']. ключ NAME, , значение из него будет campfin!

В командной строке, выполненной

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

Затем, работает python3 pgsql_big_dedupe_example_init_db.py с исходным кодом...

con = psycopg2.connect(database=db_conf['NAME'],
                   user=db_conf['USER'],
                   password=db_conf['PASSWORD'],
                   host=db_conf['HOST'],
                   cursor_factory=psycopg2.extras.RealDictCursor)
0
ответ дан 7 December 2019 в 18:21

Другие вопросы по тегам:

Похожие вопросы: