2012-02-21 102 views
1

我試圖創建一個使用命令的PostgreSQL的pg_dump

pg_dump -U vdc(old db) | psql vdc_bak.sql(backup db); 

有什麼不對這裏的語法數據庫備份?

它告訴「近pg_dump的語法錯誤」

+3

歡迎#1中。請閱讀http://stackoverflow.com/questions/how-to-ask,特別是「具體」部分。 – 2012-02-21 18:21:22

+3

「*不起作用*」不是有效的PostgreSQL錯誤信息 – 2012-02-21 18:42:23

+0

我想知道是否有一圈地獄被折磨的靈魂被迫永恆地調試只有錯誤信息是「糟糕,沒有工作的企業應用程序」 ......「和」倒下來,開始繁榮!「 – 2012-02-21 18:47:21

回答

5

從錯誤信息syntax error near pg_dump和你結束你的命令行用分號事實上,它看起來像你正試圖從 PSQL中運行pg_dump

這不起作用。您需要在shell中運行命令(例如bash)提示符。 (在pg_dump附近提供語法錯誤)在診斷這個問題時起到了關鍵作用,你的原始問題沒有包括它,沒有人能夠提供幫助。一旦你添加了文本,你幾分鐘內就得到了答案。)

13

你仍然沒有向我們展示大圖,但「語法錯誤」似乎表明你從SQL客戶端工具(psql,pgAdmin ,...)

pg_dumppsql命令行程序,而不是SQL語句。

您需要從命令提示符(也稱爲殼)

此外,該(舊DB)參數是完全錯誤的運行。該數據庫沒有投入括號的pg_dump,e.g:

pg_dump -U user1 dbname_old_db | psql -U user2 dbname_new_db 

還是那句話:你必須在命令提示符下運行這個,而不是從SQL工具