1

structure.sqlファイルから Heroku データベースにスキーマをロードしたいと考えています。私のlocalhostマシンでは、次のように実行すると、すべて正常に動作し、すべてのテーブルが作成されます。

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? 代用できるものは?

4

1 に答える 1

1

解決策を見つけました。問題は、Postgresql がディレクトリ セパレータとしてスラッシュ (/) しか使用しないことだと思います。そのため、Windows スタイルのパスを指定しても機能しません。

私は次のようにしました。最初にDBに接続しました:

C:\MyApp>heroku pg:psql DATABASE

次に、次のコマンドを実行しました。

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

また、ローカルのstructure.sqlファイルに記載されているすべてのテーブルは、Heroku ホスティングで作成されました。

于 2013-06-19T11:12:30.040 に答える