0
在NSIS安裝程序中,我使用以下行從與安裝程序一起打包的文件還原PostgreSQL數據庫。運行pg_restore或psql命令的NSIS - 無法正確還原數據庫
ExecWait '$pg_restore_path --host 127.0.0.1 --no-password --port 5432 --username "postgres" --dbname "myDatabase" --verbose $EXEDIR/myDatabase.backup' $0
的命令工作,但pg_restore在似乎不正確地設置某些postgres的序列的電流值(電流值要麼得到復位爲1或更低的數量比源的),從而導致衝突。這似乎是與postgres本地錯誤,但真的不知道。
我也曾嘗試用psql更換pg_restore的是這樣的:
ExecWait '$psql_path -f "$EXEDIR/myDatabase.sql" myDatabase'
不工作;終端會彈出並關閉。或者是這樣的:
ExecWait '$psql_path myDatabase < $EXEDIR/myDatabase.sql'
當我從它就像一個魅力的命令行手動運行psql
命令,它會導致錯誤psql: warning: extra command-line argument "<" ignored
和序列正確設置。所以我的問題是如何讓psql
命令在NSIS中運行,文件爲<
,並避免了錯誤。如果不這樣做,任何關於使用pg_restore
不同的見解可以解決序列問題?
謝謝