Удалить всю таблицу, не отбрасывая базу данных в postgres в django dbshell в одной команде?
Я попробовал это.
select 'drop table if exists "' || tablename || '" cascade;'
from pg_tables
where schemaname = 'public';
но, похоже, не работает для одной команды?
Ответы
Ответ 1
Если все ваши таблицы находятся в одной схеме, этот подход может работать (ниже код предполагает, что имя вашей схемы является "общедоступным" )
drop schema public cascade;
create schema public;
Удалить все таблицы в PostgreSQL?
см. выше ссылку для получения дополнительных ответов
Ответ 2
Запустите следующий bash script:
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
Это сработало для меня.