1. ホーム
  2. sql

herokuで.sqlスクリプトを実行するには?

2024-01-01 02:54:34

質問

私はheroku上の私のpostgresデータベースで実行したい挿入コマンドの束を持つ.sqlファイルを持っています。しかし、私はそれを行う方法がわからない:-。

もし私がpostgresコンソールにアクセスできるのであれば、次のようにタイプします。

psql -h localhost -d database -U username -f datafile.sql

というコマンドがありますが、herokuはこのコマンドをサポートしていないようです。私は

heroku pg:psql

のように表示されますが、これではファイルを入力することができません。

他に方法はないのでしょうか?

どのように解決するのですか?

データベースのシードのようなものについては、Richard Brownの回答をお勧めします。Railsのシード機構のようなものや、rakeタスクのようなスクリプトを使う方が間違いなくよいでしょう。

とはいえ、SQL (生データまたはファイル) をパイプできることは、特に単純なルックアップやルーチンクエリのようなべき乗のものには便利な機能です。この場合、以下のいずれかを使用してローカルのSQLを実行することができます。

$ cat file.sql | heroku pg:psql --app app_name
$ echo "select * from table;" | heroku pg:psql --app app_name
$ heroku pg:psql --app app_name < file.sql