2016-08-06 13 views
0

Ich versuche, eine Datenbank mit dem Namen test von node.js postgres sql zu löschen, aber es funktioniert nicht.Wie man eine Datenbank in postgres sql mit node.js löscht?

var express = require('express'); 
var app = express(); 
var pg = require('pg'); 
var pgp = require('pg-promise')(); 

// Connect to PostgreSQL database 
var connectionString = process.env.DATABASE_URL || 'postgres://postgres:[email protected]:5432/test'; 
var db = pgp(connectionString); 
db.connect(); 


    db.query("DROP DATABASE test").then(function() 
    { 
    //createDatabases(db); 
    }).catch(function(err) 
    { 
    console.log(err); 
    }); 

Aber ich bin immer einen Fehler

{ [error: cannot drop the currently open database] 
    name: 'error', 
    length: 87, 
    severity: 'ERROR', 
    code: '55006', 
    detail: undefined, 
    hint: undefined, 
    position: undefined, 
    internalPosition: undefined, 
    internalQuery: undefined, 
    where: undefined, 
    schema: undefined, 
    table: undefined, 
    column: undefined, 
    dataType: undefined, 
    constraint: undefined, 
    file: 'dbcommands.c', 
    line: '834', 
    routine: 'dropdb' } 

Weiß jemand, wie man es beheben?

Dank

+0

Sie sollen nicht nennen 'db.connect();' dort. Und Sie sollten 'pg' dort nicht einschließen. –

Antwort

1

Da der Fehler sagt, kann man nicht auf die DB in Frage verbunden wird es fallen zu lassen. Sie können, um zu einem anderen DB verbinden, so zu tun, oder ein Tool wie pgtools

var pgtools = require('pgtools'); 

// This can also be a connection string 
// (in which case the database part is ignored and replaced with postgres) 

const config = { 
    user: 'postgres', 
    password: 'some pass', 
    port: 5432, 
    host: 'localhost' 
} 


pgtools.dropdb(config, 'test-db', function (err, res) { 
    if (err) { 
    console.error(err); 
    process.exit(-1); 
    } 
    console.log(res); 
}); 
+1

Danke für das Posting, nur bestätigt, das hat sehr gut funktioniert und läuft von win10 git bash! – vapurrmaid