Ich versuche, die Deduplizierungsbibliothek und dieses Beispiel mit dem Ubuntu-Bash-Befehl auszuführen.
https://github.com/dedupeio/dedupe-examples/tree/master/pgsql_big_dedupe_example
Grundsätzlich habe ich eine Datenbank mit dem Namen „campfin“ erstellt. Wie Sie an der Auflistung der Datenbanknamen sehen können, existiert sie.
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-#
Wenn ich meinen Python-Code ausführe:
python3 pgsql_big_dedupe_example_init_db.py
oder
sudo python3 pgsql_big_dedupe_example_init_db.py
Dies ist der Teil des Modus zum Herstellen einer Verbindung mit der Datenbank.
conn = psycopg2.connect(database=db_conf['campfin'],
user=db_conf['111'],
password=db_conf['111'],
host=db_conf['localhost'],
port=db_conf['5433'])
Es wird mir zurückgegeben, dass die Datenbank campfin nicht existiert:
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'
was mache ich hier falsch? Hängt das Problem mit „via socket in „/var/run/postgresql“ zusammen? Das ist nicht mein lokaler Host?
Wenn ich laufe:
/mnt/c/WINDOWS/system32/virtualenv/dedupe/dedupe-examples/pgsql_big_dedupe_example$ service postgresql status
in gibt zurück: 10/main (Port 5433): online
Antwort1
db_conf['NAME']
soll nicht geändert werden in db_conf['campfin']
. DieSchlüsselist NAME
derWertdavon wird es sein campfin
!
Führen Sie in der Befehlszeile aus
export DATABASE_URL=postgres://111:111@localhost/campfin
Führen Sie es dann python3 pgsql_big_dedupe_example_init_db.py
mit dem Originalcode aus ...
con = psycopg2.connect(database=db_conf['NAME'],
user=db_conf['USER'],
password=db_conf['PASSWORD'],
host=db_conf['HOST'],
cursor_factory=psycopg2.extras.RealDictCursor)