Ответ 1
Ну, ближе всего вы можете получить с SQL:
create table new (
like old
including defaults
including constraints
including indexes
);
Но он не будет копировать все. Самые важные вещи, которые отсутствуют, - FOREIGN KEYs. Кроме того, триггеры также не копируются. Не уверен в других вещах.
Другой способ - сбросить структуру таблицы, изменить ее имя в дампе и снова загрузить ее:
pg_dump -s -t old databases | sed 's/old/new/g' | psql
Но будьте осторожны, что такое упрощенное sed также изменится с старого на новое в других местах (например, если в вашем столбце таблицы с именем "is_scolded" оно станет "is_scnewed" ).
Вопрос на самом деле скорее: зачем он вам нужен, потому что для различных целей я бы использовал разные методы.