Ich benutze pg-Versprechen auf Knoten 7.2.1 mit PostgreSQL 9.4. Ich verwende den folgenden Code an den PostgreSQL-Server zu verbinden:Beziehung existiert nicht Fehler mit Pg-Versprechen und Postgresql?
// pg-promise connection elements.
// Database initialization options.
const pg_options = {
// Initialization options.
};
// Create an instance of the pg-promise library.
const g_pg_promise = require('pg-promise')(pg_options);
// Connection string for a local connection to the 'summarize' database.
const g_pg_connection =
{
host: 'localhost',
port: 5432,
database: 'db_stats',
user: 'db_user',
password: '{password here}'
}
// Connect to the database.
const g_pg_database = g_pg_promise(g_pg_connection);
// Expose the database object globally. The database object should only
// be instantiated once and then shared.
module.exports = {
g_pg_promise: g_pg_promise,
g_pg_database: g_pg_database
};
Ich weiß, dass die Verbindungsparameter gültig sind, weil ich genau die gleichen Werte in anderen nicht-Node.JS Apps nutzen, auf den gleichen PostgreSQL-Server zu verbinden. Ich weiß auch, dass db_stats ein gültiger Datenbankname ist. Ich habe mit dieser Datenbank eine ganze Weile mit anderen nicht Node.JS-Anwendungen und über pgAdmin 3.x gearbeitet.
Allerdings, wenn ich versuchen, mit pg-Versprechen verbinden ich die folgende Fehlermeldung erhalten:
error: relation "db_stats" does not exist
ich unten schreiben sah das SO:
Unable to query PostgreSQL database in NodeJS using pg-promise - "relation does not exist"
Aber das Post tat nicht Sinn für mich, weil ich glaube, Vitaly, der Autor von PG-Versprechen, sagte dem Plakat, dass er keine TabelleBenutzer, wh de es sieht für mich aus, dass das plakat versuchte, auf die datenbank namens benutzer zuzugreifen und er hatte definitiv eine datenbank mit diesem namen.
In jedem Fall ich auf jeden Fall eine Datenbank db_stats so bin ich nicht sicher, warum ich immer diese Fehlermeldung genannt haben. Wie kann ich das lösen?
Der Fehler ist * nicht * sprechen über eine * Datenbank * namens '" db_stats "', sondern eine * Relation * (entweder eine * Tabelle * oder eine * Ansicht *) mit diesem Namen.Das heißt, "db_stats" erscheint am wahrscheinlichsten in der FROM-Klausel einer SELECT-Abfrage. – joanolo
@joanolo Danke das war es. Ich war so konzentriert auf die Verbindungserklärung, dass ich nicht darüber nachdachte. Wenn Sie Ihren Kommentar auf eine Antwort hochskalieren möchten, möchte ich ihn "akzeptieren". –