2013-06-19 20 views
1

我想從structure.sql文件加載到我的Heroku數據庫。在我的本地機器,我做如下,所有工作得很好,所有的表創建:如何傳遞文件名到Heroku pg:sql命令?

C:\> psql -U postgres -a -d MyApp_development -f C:\MyApp\db\structure.sql 

我通過一個本地文件名作爲-f選項:-f C:\MyApp\db\structure.sql

當我做同樣在Heroku上,它抱怨沒有找到應用程序。我認爲它不明白-f選項。它在其服務器上找不到文件C:\MyApp\db\structure.sql

那麼,我該如何提供相對於Heroku的正確路徑呢? structure.sql這裏必須位於在Heroku:

MyApp\db\structure.sql 

所以我需要做這樣的事情:

heroku pg:psql -U ... -a -d MyHerokuDB -f MyHerokuAppRoot\db\structure.sql 

什麼是MyHerokuAppRoot?什麼可以代替它?

回答

1

我找到了解決方案。我認爲問題在於Postgresql只將正斜槓(/)作爲目錄分隔符。所以當我提供Windows樣式路徑時,它不起作用。

我做了如下。我第一次連接到DB:

C:\MyApp>heroku pg:psql DATABASE 

然後我跑這個命令:

d17q2hrd89o9cu=> \i C:/MyApp/db/structure.sql 

而且在Heroku主機創建本地structure.sql文件中提及的所有表。

相關問題