2013-04-30 489 views
0

我在MVC3 Mono應用程序上使用pgProvider,並且在Windows Postgres 9.2上沒有問題。我試圖訪問供應商時,遷移到我生產的Linux /單聲道的環境,並獲得了一個錯誤:PostgreSQL:使用CreateLang後,我仍然收到錯誤「42704:語言」plpgsql「不存在」

"42704: language "plpgsql" does not exist" 

我使用PostgreSQL 8.4在CentOS 6.3

我看了一些資料,跑瞭如下:

createlang -d dbname plpgsql 

當我再次運行它時,它肯定數據庫已經存在。

我重新啓動postgresql和我的應用程序。不過,我仍然遇到上述錯誤。

有沒有人有任何信息,爲什麼我仍然會收到「plpgsql不存在 - 安裝後?」

+3

您確定您正在使用應用程序訪問正確的數據庫嗎?也許它連接到其他數據庫。 – FuzzyChef 2013-04-30 17:24:21

+0

它必須是。當我重新審視這一點時,我相信它會變得愚蠢和明顯。 – Yablargo 2013-06-13 02:21:25

回答

1

一般來說,這種錯誤表明事情並非如你所期望的那樣,你需要質疑你的假設。

請注意,不是需要重新啓動數據庫服務器才能在任何版本的PostgreSQL上生效。另請注意,PostgreSQL中允許的語言是per-db目錄條目(與用戶和角色不同,語言不是集羣全局的)。

所以在解決此,你需要開始:

  1. 這是正確的分貝?正確的服務器?

  2. 我的應用程序連接到相同的數據庫/服務器我認爲它是?

鑑於createlang在運行之後確認語言存在,這對PostgreSQL引發虛假錯誤並不是問題。相反,它不會影響您的應用程序正在使用的數據庫所做的更改。

+0

我同意「不像我期望的那樣」。然而,如果我能弄清楚什麼,我會被詛咒的! – Yablargo 2013-06-13 02:20:28

相關問題