web-dev-qa-db-ja.com

1つのコマンドでDjango dbshel​​l?のpostgresにデータベースをドロップせずにすべてのテーブルを削除しますか?

私はこれを試しました..

 select 'drop table if exists "' || tablename || '" cascade;' 
from pg_tables
 where schemaname = 'public';

しかし、1つのコマンドでうまくいかないようですか?

19
Irshadmi4

すべてのテーブルが単一のスキーマにある場合、このアプローチは機能します(コードの下ではスキーマの名前が「public」であると想定しています)

drop schema public cascade;
create schema public;

PostgreSQLのすべてのテーブルをドロップしますか?

上記のリンクをご覧ください

57
Haji

次のbashスクリプトを実行します。

psql -h <pg_Host> -p <pg_port> -U <pg_user> <pg_db> -t -c "select 'drop table \"' || tablename || '\" cascade;' from pg_tables where schemaname='public'" | psql -h <pg_Host> -p <pg_port> -U <pg_user> <pg_db>

ここからコピーしました: http://www.commandlinefu.com/commands/view/12989/postgresql-drop-all-tables-from-a-schema

それは私のために働いた。

10
Chocksmith