2016-09-07 12 views
0

bashスクリプトを使用してalter tableコマンドを実行したかったのですが、テーブルを作成し、ベースモデルをロードし、設定テーブルなどを作成しました。スクリプトは、alter tableコマンドを実行する前にpostgresデータベースにログインします。 alter tableコマンドに進むことなく、(abcdb =>)のように立ち往生します。 alter tableを実行できることを確認する方法はありますか?bashを使用してpostgresでalter tableスクリプトを実行する方法

psql -h 191.169.51.10 -d abcdb -U myname 



alter table attr_config rename regexp to regexp_val; 
alter table class_action_config rename type to type_name; 
alter table funcitem_config rename type to type_name; 
+0

は、スクリプトの上記の行の一部ですか? – redneb

+0

ええ、それは私のスクリプトの一部です。最初の行はpostgresデータベースにログインします。 – Lee

答えて

0

として

ログインあなたはpsqlのコマンドにSQL/DMLを(テーブル・ステートメントを変更する)リダイレクトする必要があり、このようなスクリプトを実行するために。さもなければ、bashはそれらと何をするべきか理解しません。

psql -h 191.169.51.10 -d abcdb -U myname << EOF 

alter table attr_config rename regexp to regexp_val; 
alter table class_action_config rename type to type_name; 
alter table funcitem_config rename type to type_name; 
EOF 

別の方法としては、別のファイルにあなたのSQL/DMLを入れて、それから読んでpsqlを持つことができます。

psql -h 191.169.51.10 -d abcdb -U myname < alter_statements.sql 

それとも

psql -h 191.169.51.10 -d abcdb -U myname -f alter_statements.sql 
+0

それは動作します!ありがとう:) – Lee

関連する問題