2015-04-29 51 views
0

我有一個將創建和刪除postgres數據庫的應用程序。應用程序本身有自己的sql服務器數據庫。一種奇異的建築,但它不是由選擇。哪個數據庫連接到更高級別的應用程序管理其他數據庫

我有點困惑我應該如何連接到postgres服務器來執行這些創建表和刪除表命令。通常在app.configweb.config中,連接字符串將指定數據庫。在這種情況下,我只想指定服務器。

查詢可以直接運行到postgres服務器,沒有特定的數據庫?

我應該使用由服務器創建的postgres數據庫嗎?我試過這個...... select * from pg_database,然後drop database DBNAME與第一個查詢的結果,它給出了一個錯誤,說數據庫不存在。

或者我可以創建一個空的數據庫來連接並提交查詢,儘管它沒有用於任何事情。

+0

非常奇怪,就像「爲什麼你會這麼做」是離奇的。 –

+0

至於錯誤,請顯示*實際查詢*和*精確錯誤信息*。 –

回答

3

您可以連接到postgres數據庫,然後從那裏運行drop database <DBNAME>,是的。另一種選擇是,例如,template1。 (我會避免template0中因爲這基本上是從模板1創建根模板,你總是可以從template0中重新模板1迅速,如果發生了什麼事情吧,假設你沒有修改模板1但不template0中

我通常連接到的Postgres,我自己,對於服務器級的命令。

我創建一個空數據庫,看到它從一個pg_database查詢返回,這樣肯定是在一般的工作後,通過PSQLDROP DATABASE droptest;

也許它在某種程度上通過其他過程在您查詢事件和執行DROP...的過程中被刪除。

另一種選擇是使用命令行工具dropdb代替。這是一個圍繞drop database的包裝,並且是我通常用於數據庫丟失的手動和自動實例的東西。

4

查詢可以直接運行到postgres服務器,沒有特定的數據庫?

不。PostgreSQL要求您連接到特定的數據庫。

最終實際上可能會放寬限制,所以您可以做的事情只適用於共享目錄從連接到沒有特定數據庫。它需要改變身份驗證的工作原理和各種各樣的事情,而且我不認爲像通常爲空的「數據庫」這樣的「管理數據庫」真的是一個問題。

我應該使用由服務器創建的postgres數據庫嗎?

一般來說,是的。有可能DROPpostgres數據庫,但你通常應該保持獨立,並將其用作管理數據庫。

相關問題